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

如何在Python中按行排序获取每行值最大的2个列名?

解决方案

你可以通过以下步骤实现提取每行数值最大的2个列标识并生成OUTPUT列:

完整代码

import pandas as pd

# 构造示例DataFrame
data = {
    'A_ZZ_CR': [0.51, 0.65, 0.63, 0.59, 0.66],
    'B_YY_CR': [0.12, 0.53, 0.45, 0.41, 0.43],
    'C_WW_CR': [0.69, 0.18, 0.20, 0.17, 0.23],
    'D_XX_CR': [0.72, 0.68, 0.73, 0.72, 0.74],
    'E_VV_CR': [0.04, 0.70, 0.72, 0.69, 0.71],
    'F_OO_CR': [0.78, 0.08, -0.02, 0.10, 0.16]
}
df = pd.DataFrame(data)

# 新增OUTPUT列
df['OUTPUT'] = df.apply(
    lambda row: ', '.join([col.split('_')[1] for col in row.nlargest(2).index]),
    axis=1
)

print(df)

代码说明

  1. 获取前2大值的列名:使用row.nlargest(2).index获取每行数值最大的前2个列名
  2. 提取中间标识:通过col.split('_')[1]将列名按下划线分割,取中间的标识部分(例如F_OO_CR分割后取OO)
  3. 拼接结果:用', '.join()将两个标识拼接成逗号分隔的字符串

运行后即可得到你需要的带OUTPUT列的DataFrame。

内容的提问来源于stack exchange,提问作者Divyansh Kumar Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 09:10:35