小编典典

使用 Pandas 查找列的最大值并返回相应的行值

all

数据结构;

使用 Python Pandas 我试图找到具有最大值的Country& 。Place

这将返回最大值:

data.groupby(['Country','Place'])['Value'].max()

但是如何获得对应的CountryPlace名称呢?


阅读 82

收藏
2022-08-17

共1个答案

小编典典

假设df有一个唯一索引,这将给出具有最大值的行:

In [34]: df.loc[df['Value'].idxmax()]
Out[34]: 
Country        US
Place      Kansas
Value         894
Name: 7

请注意,idxmax返回索引 标签 。因此,如果 DataFrame
在索引中有重复项,则标签可能无法唯一标识行,因此df.loc可能返回多行。

因此,如果df没有唯一索引,则必须先使索引唯一,然后再进行上述操作。根据
DataFrame,有时您可以使用stackset_index使索引唯一。或者,您可以简单地重置索引(因此行重新编号,从 0 开始):

df = df.reset_index()
2022-08-17