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
相关产品推荐
相关产品推荐

