You need to enable JavaScript to run this app. Pandas新增BEST列存储与前2行差值最大的列名列表实现方案
优惠活动
大模型
产品
解决方案
定价
更多

Pandas新增BEST列存储与前2行差值最大的列名列表实现方案

Pandas DataFrame新增BEST列实现方案

核心实现逻辑

  • 先用diff(periods=2)计算每列当前行与前2行的差值
  • 逐行判断:如果该行差值全为空(前两行没有足够的历史数据),返回空列表;否则筛选出所有差值等于该行最大值的列名,返回列表

完整代码

import io, pandas as pd

# 生成测试DataFrame
df = io.StringIO("""
A|B|C
1|2|3
3|2|1
5|2|4
-3|0|2
6|3|4
""")
df = pd.read_csv(df, sep='|')

# 计算每列与前2行的差值
diff_df = df.diff(periods=2)

# 定义获取最优列名的函数
def get_best_cols(row):
    if row.isna().all():
        return []
    max_diff = row.max()
    return row.index[row == max_diff].tolist()

# 新增BEST列
df['BEST'] = diff_df.apply(get_best_cols, axis=1)

# 打印结果
print(df)

输出结果验证

运行代码后输出和预期完全一致:

A  B  C        BEST
0  1  2  3          []
1  3  2  1          []
2  5  2  4       ['A']
3 -3  0  2       ['C']
4  6  3  4  ['A', 'B']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 01:54:03