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

发布于 2021-01-29 19:36:50

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

这将返回最大值:

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

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

关注者
0
被浏览
123
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    假设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()
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看