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

使用Pandas的df.min()后,如何获取每行最小值对应的列名?

获取DataFrame每行最小值对应的列名并新增列

问题描述

需要找出DataFrame每行最小值对应的列名,并将其存入新列中。使用min(axis=1)仅能得到每行最小值的数值,无法获取对应列名,且需要向量化解决方案处理大量数据。

示例数据与问题复现:

import pandas as pd

initialDict = {"A":[6.53,11.47,92.08],"B":[9.11,8.15,12.49]}
initialDf = pd.DataFrame.from_dict(initialDict,orient="index",columns=["Value 1","Value 2","Value 3"])

生成的DataFrame:

Value 1  Value 2  Value 3
A     6.53    11.47    92.08
B     9.11     8.15    12.49

使用min(axis=1)仅返回数值,无法获知对应列名:

initialDf.min(axis=1,numeric_only=True)

结果:

A    6.53
B    8.15
dtype: float64

解决方案

Pandas内置的idxmin(axis=1)方法可直接返回每行最小值对应的列名,该方法为向量化实现,效率极高,适合处理大规模数据集。

代码实现

# 添加新列,存储每行最小值对应的列名
initialDf['min_column'] = initialDf.idxmin(axis=1, numeric_only=True)

# 查看最终结果
print(initialDf)

输出结果

Value 1  Value 2  Value 3 min_column
A     6.53    11.47    92.08    Value 1
B     9.11     8.15    12.49    Value 2

补充说明

  • numeric_only=True参数确保仅计算数值型列的最小值,避免非数值列干扰计算结果。
  • 若某行存在多个相同的最小值,idxmin会返回第一个出现该最小值的列名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 16:57:17