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

如何为DataFrame每行最小值添加对应列名生成新DataFrame?

解决方法

首先,你的原始DataFrame定义如下:

import pandas as pd
data = [[5,4,3,2,6,8], [9,1,5,4,8,6], [7,6,8,1,2,4], [9,6,5,4,8,3]]
df = pd.DataFrame(data, columns=['Col1','Col2','Col3','Col4','Col5','Col6'])

要同时获取每行的最小值及其对应列名,可以用pandas的idxmin(axis=1)方法——它能返回每行最小值所在的列名,再结合min(axis=1)的结果组合成你需要的格式。

方法一:生成你期望的Series格式

执行以下代码:

# 获取每行最小值和对应列名
min_vals = df.min(axis=1)
min_cols = df.idxmin(axis=1).str.lower()  # 转为小写列名,匹配你的期望输出

# 组合成以最小值为索引、列名为值的Series
result = pd.Series(min_cols.values, index=min_vals.values)

运行后输出:

2    col4
1    col2
1    col4
3    col6
dtype: object

方法二:保留原行索引的DataFrame格式

如果需要更清晰的结构化展示,也可以生成包含两列的DataFrame:

result_df = pd.DataFrame({
    '最小值': df.min(axis=1),
    '对应列名': df.idxmin(axis=1).str.lower()
})

输出结果:

最小值 对应列名
0    2  col4
1    1  col2
2    1  col4
3    3  col6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 18:58:25