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

如何在Python/Pandas中将三列最大值(含列标识)存入新列

在Pandas中生成每行最大值与列名组合的新列

问题描述

现有如下DataFrame:

abc
113
241
321

需要为其新增一列max,该列的值为每行a、b、c三列中的最大值与对应列名的组合,最终结果如下:

abcmax
1133c
2414b
3213a

解决方案

可以通过Pandas内置的max()和idxmax()方法快速实现需求:

1. 构造示例数据

import pandas as pd

df = pd.DataFrame({
    'a': [1, 2, 3],
    'b': [1, 4, 2],
    'c': [3, 1, 1]
})

2. 生成max列

通过以下代码直接完成最大值与列名的拼接:

df['max'] = df[['a', 'b', 'c']].max(axis=1).astype(str) + df[['a', 'b', 'c']].idxmax(axis=1)

3. 验证结果

执行代码后,打印df即可得到目标结果:

print(df)

输出内容:

a  b  c  max
0  1  1  3   3c
1  2  4  1   4b
2  3  2  1   3a

关键方法说明

  • max(axis=1):按行计算指定列的最大值
  • idxmax(axis=1):返回每行最大值对应的列名
  • astype(str):将数值类型的最大值转为字符串,确保能与列名字符串拼接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 12:35:06