如何获取Pandas数据框中某列的最大值并找到另一列中对应的值?

5
我想对 Pandas 数据框的某一列取最大值,并找出另一列相应的数值。假设在最大值中没有重复值,所以你只会返回一个值。例如:
GPA   ID
2.3  Tina1
3.4  Bob1
3.6  Lia1
2.9  Tina2
4.0  Blake1
4.5  Conor2

这里的最高GPA是4.5,但我想返回最高GPA对应的id,所以我会返回Conor2。我不确定如何做到这一点,因此需要帮助:)谢谢!

2个回答

5

您可以使用

df.loc[df.GPA == df.GPA.max(), 'ID']

你得到了

5    Conor2

如果您只需要值而不是索引,请尝试以下方法:
df.loc[df.GPA == df.GPA.max(), 'ID'].values[0]

你会得到:
'Conor2'

谢谢您的回答,我有一个快速的评论。您可以直接使用 df.loc[...].item() 访问结果系列的内容,而不是使用 df.loc[...].values[0] - eidal

3

我们可以使用idxmax

df.set_index('ID').idxmax()

输出:

GPA    Conor2
dtype: object

一个只有单个值Conor2的系列。


啊!没想到可以用idxmax() :) +1 - Vaishali
1
是的,@A-Za-z,创建索引会增加开销,但如果索引已经存在,那么这是一个好方法。 - Scott Boston

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接