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

Pandas技术问题:如何获取另一列最大值所在行的指定列值?

解决方法:获取某列最大值对应行的指定列值

你的代码df["Column1"][df["Column2"].max()]逻辑错误——df["Column2"].max()返回的是Column2的最大值,你用这个数值当索引去取Column1的元素,这和找最大值所在行完全无关:索引不一定等于Column2的数值,自然会报错或者返回错误结果。

下面是两种正确的实现方式:

方法1:用idxmax()定位最大值所在行

idxmax()会返回Column2最大值对应的索引,直接用这个索引取Column1的值:

# 获取第一个最大值对应的Column1值
df.loc[df["Column2"].idxmax(), "Column1"]

如果Column2有多个相同的最大值,这个方法会返回第一个出现的那一行的Column1值。

方法2:用布尔索引筛选所有最大值行

如果需要获取所有Column2等于最大值的行的Column1值,可以用布尔筛选:

# 获取所有最大值对应的Column1值(返回Series)
df.loc[df["Column2"] == df["Column2"].max(), "Column1"]

# 只取第一个结果的话,加.iloc[0]
df.loc[df["Column2"] == df["Column2"].max(), "Column1"].iloc[0]

示例演示

比如构造如下DataFrame:

import pandas as pd

data = {
    "Column1": ["A", "B", "C", "D"],
    "Column2": [10, 30, 20, 30]
}
df = pd.DataFrame(data)
  • 用idxmax()方法得到的结果是"B"(第一个最大值所在行的Column1)
  • 用布尔索引得到的是包含"B"和"D"的Series

内容的提问来源于stack exchange,提问作者Ondřej Smečka

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 05:52:38