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

Python Pandas:提取每行最大值、对应列名及ItemName列方法

提取DataFrame每行最大值、对应列名并保留ItemName列

直接通过生成新列的方式就能轻松实现需求,不用把列名设为索引,步骤如下:

1. 示例DataFrame(模拟你的数据)

import pandas as pd

data = {
    'ItemName': ['苹果', '香蕉', '橙子'],
    '价格1': [5, 7, 6],
    '价格2': [6, 6, 8],
    '价格3': [7, 8, 7]
}
new_df = pd.DataFrame(data)

2. 生成最大值及对应列名列,合并ItemName

直接新增两列存储最大值和对应列名,再筛选需要的列即可:

# 计算每行最大值(只针对数值列)
new_df['最大值'] = new_df.max(axis=1, numeric_only=True)
# 获取最大值对应的列名
new_df['对应列名'] = new_df.idxmax(axis=1, numeric_only=True)

# 提取最终需要的列
result = new_df[['ItemName', '对应列名', '最大值']]
print(result)

输出结果:

ItemName 对应列名  最大值
0      苹果   价格3    7
1      香蕉   价格3    8
2      橙子   价格2    8

3. 基于你原有代码的改造方案

如果想沿用你之前的max和idxmax结果,可以直接构建新DataFrame并关联ItemName:

# 基于你原有代码的写法
max_values = new_df.max(axis=1, numeric_only=True)
max_columns = new_df.idxmax(axis=1, numeric_only=True)

# 组合成新DataFrame并加入ItemName
result = pd.DataFrame({
    'ItemName': new_df['ItemName'],
    '对应列名': max_columns,
    '最大值': max_values
})

这样就能避免把列名设为索引带来的对齐问题,结构更清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 16:32:08