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

如何在Pandas DataFrame中新增列显示每行最大值对应的列名

解决方法

首先构造符合你需求的DataFrame:

import pandas as pd
import numpy as np

# 创建初始数据
df = pd.DataFrame({
    'S1': [2, 1, 3],
    'S2': [4, 2, np.nan],
    'S3': [1, 3, 1],
    'S4': [3, 4, 2]
})

接下来直接使用Pandas的idxmax()方法,按行查找最大值对应的列名(即学生姓名),并新增为BestStudent列:

# 新增BestStudent列
df['BestStudent'] = df.idxmax(axis=1)

执行后,你的DataFrame就会变成期望的样子:

S1   S2  S3  S4 BestStudent
0   2  4.0   1   3          S2
1   1  2.0   3   4          S4
2   3  NaN   1   2          S1

说明

  • idxmax(axis=1)指定按行维度查找最大值对应的列标签,正好匹配学生姓名的需求;
  • 该方法会自动忽略NaN值,所以第三行中S2的空值不会被纳入比较,正确选出得分最高的S1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:20:54