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

Python中获取DataFrame每行最大值及对应列名的方法

嘿,这两个需求用Pandas轻松就能搞定,我给你一步步拆解,还附了示例代码,一看就懂!

解决方案

先假设我们有这样一个示例DataFrame(第一列是时间,后面是特征列):

import pandas as pd

# 构造示例数据
data = {
    'time': ['2024-01-01', '2024-01-02', '2024-01-03'],
    'feature_a': [10, 25, 15],
    'feature_b': [20, 18, 22],
    'feature_c': [5, 30, 18]
}
df = pd.DataFrame(data)

1. 获取每行的最大值

因为time列是时间类型,我们只需要计算后面特征列的每行最大值。先筛选出特征列,再用max(axis=1)方法(axis=1代表按行计算):

# 筛选特征列(排除第一列time)
feature_cols = df.columns[1:]
# 计算每行最大值,生成新列
df['row_max'] = df[feature_cols].max(axis=1)

执行后,DataFrame会新增一列row_max,存放每行特征的最大值。

2. 获取最大值对应的列名称

用idxmax(axis=1)方法就能直接得到每行最大值对应的列名,同样针对特征列操作:

# 生成每行最大值对应的特征列名
df['max_feature'] = df[feature_cols].idxmax(axis=1)

这样max_feature列就会显示每个时间点数值最大的特征名称,比如示例里第二行的最大值是30,对应feature_c,这列就会显示feature_c。

最后看处理后的完整DataFrame:

print(df)

输出结果如下:

time  feature_a  feature_b  feature_c  row_max max_feature
0  2024-01-01         10         20          5       20  feature_b
1  2024-01-02         25         18         30       30  feature_c
2  2024-01-03         15         22         18       22  feature_b

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:17:46