小编典典

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

python

我正在尝试使用Python Pandas查找具有 最大值的Country&。Place

这将返回最大值:

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

但我怎么得到相应Country和Place的名字吗?


阅读 179

收藏
2020-12-20

共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()
2020-12-20