You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Pandas DataFrame新增列存储满足≥median条件的排序列名列表

实现代码

首先导入依赖并构造示例数据:

import pandas as pd

# 构造示例DataFrame
data = [
    [0.10,0.08,0.29,0.13,0.03,0.29,0.06,0.03,0.06,0.08],
    [0.82,0.18,0.14,0.12,0.08,0.12,0.08,0.06,0.10,0.12],
    [0.57,0.17,0.13,0.14,0.05,0.16,0.05,0.04,0.09,0.13]
]
cols = ['a','b','c','d','e','f','g','h','i','median']
df = pd.DataFrame(data, columns=cols)

然后实现possible_labels列的生成逻辑:

# 指定参与条件判断的列范围
calc_cols = ['a','b','c','d','e','f','g','h','i']

# 按行处理生成目标列
df['possible_labels'] = df.apply(
    lambda row: [
        col for col, val in 
        sorted(row[calc_cols].items(), key=lambda x: x[1], reverse=True) 
        if val >= row['median']
    ],
    axis=1
)

逻辑说明

  • 用apply按行遍历DataFrame,每行先取出calc_cols范围内的列名和对应值,按数值从大到小排序
  • 筛选出数值大于等于当前行median的列名,按排序顺序组成列表存入新列
  • 输出结果完全符合预期效果

内容的提问来源于stack exchange,提问作者Govind Banura

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 12:54:06