首页 > 解决方案 > Python:找到一列的最大值并在同一行中提取其他列的值

问题描述

我有下一个包含两列的数据框:

Idx =[1,2,3,4,5]
Values =[7,-2,-1,10,5]
lists = list(zip(Idx, Values))  
dfsr = pd.DataFrame(lists, columns = ['Idx', 'Values'])
dfsr

这会生成下一个 DataFrame

    Idx Values
0   1   7
1   2   -2
2   3   -1
3   4   10
4   5   5

我要做的是在“values”列中找到最大值并选择“Idx”列的相应值。

我试过这个:

MVI = dfsr[dfsr.Values == dfsr.Values.max()]
MVI

这导致:

   Idx  Values
3   4   10

但我需要的只是 Idx 的值。return 应该只是 4 作为以后使用的数字。

有人可以帮我做这个简单的事情吗?非常感谢!

标签: python-3.xpandas

解决方案


尝试:

>>> MVI = dfsr.loc[dfsr.Values == dfsr.Values.max(), 'Idx']
>>> MVI
3    4
Name: Idx, dtype: int64

或者,如果您只想要对象本身(而不是pandas.Series对象):

>>> MVI = dfsr.loc[dfsr.Values == dfsr.Values.max(), 'Idx'].to_list()[0]
>>> MVI
4

推荐阅读