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

如何获取DataFrame最大值及对应列名、索引与Name列值?

获取DataFrame最大值及对应列名、索引和Name列值的实现方案

先明确我们的初始数据和需求:

初始DataFrame

我们有如下结构的DataFrame:

import pandas as pd

df = pd.DataFrame(dict(
    Name=['Jason_Fly','Alan_Smith','Steve_Rowland'], 
    Col1=[1,2,3], 
    Col2=[1,3,9],
    Col3=[5,6,8]
))

对应的表格展示:

索引NameCol1Col2Col3
0Jason_Fly115
1Alan_Smith236
2Steve_Rowland398

需求说明

我们需要完成:

  • 提取DataFrame中的最大值
  • 获取该最大值对应的列名
  • 获取最大值所在的行索引,以及该行Name列的对应值

实现代码

这里用stack()方法简化位置定位,代码如下:

import pandas as pd

# 初始化DataFrame
df = pd.DataFrame(dict(
    Name=['Jason_Fly','Alan_Smith','Steve_Rowland'], 
    Col1=[1,2,3], 
    Col2=[1,3,9],
    Col3=[5,6,8]
))

# 将DataFrame堆叠为多层索引Series,每个值绑定(行索引, 列名)的位置
stacked_df = df.stack()

# 获取最大值和它的位置信息
max_value = stacked_df.max()
max_row_idx, max_col_name = stacked_df.idxmax()

# 提取对应行的Name值
corresponding_name = df.loc[max_row_idx, 'Name']

# 按预期格式输出结果
print(f"Maximum : {max_value}")
print(f"Corresponding column : {max_col_name}")
print(f"Corresponding index : {max_row_idx} | Corresponding value in column Name : {corresponding_name}")

代码解释

  • df.stack():把原DataFrame的列转换为内层索引,让每个数值都关联它的行索引和列名,方便精准定位最大值的位置。
  • stacked_df.idxmax():返回最大值所在的多层索引,第一个元素是行索引,第二个是列名。
  • df.loc[max_row_idx, 'Name']:通过行索引直接提取对应行的Name列值。
  • 最后用f-string格式化输出,完全匹配你想要的结果样式。

输出结果

运行代码后会得到:

Maximum : 9
Corresponding column : Col2
Corresponding index : 2 | Corresponding value in column Name : Steve_Rowland

扩展:处理多个最大值的情况

如果你的DataFrame存在多个相同的最大值,上面的代码只会返回第一个出现的。如果需要输出所有最大值的信息,可以调整为:

# 获取所有最大值的位置
all_max_locations = stacked_df[stacked_df == stacked_df.max()].index

# 遍历输出每个最大值的信息
for idx, col in all_max_locations:
    name_val = df.loc[idx, 'Name']
    print(f"Maximum : {stacked_df.max()}")
    print(f"Corresponding column : {col}")
    print(f"Corresponding index : {idx} | Corresponding value in column Name : {name_val}\n")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 00:33:13