gpt4 book ai didi

python - pandas nlargest 返回超过 n 行

转载 作者:行者123 更新时间:2023-12-01 03:54:59 25 4
gpt4 key购买 nike

我有一个如下所示的DataFrame:

            name      value 
date
2016-05-01 kelly 20
2016-05-05 john 12
2016-05-05 sarah 25
2016-05-05 george 3
2016-05-05 tom 40
2016-05-07 kara 24
2016-05-07 jane 90
2016-05-07 sally 39
2016-05-07 sam 28

我希望最好按日期获取前 3 行(根据值)。我期待这样的事情:

            name      value 
date
2016-05-01 kelly 20
2016-05-05 john 12
2016-05-05 sarah 25
2016-05-05 tom 40
2016-05-07 jane 90
2016-05-07 sally 39
2016-05-07 sam 28

但我也同意这个:

            name      value 
date
2016-05-05 tom 40
2016-05-07 jane 90
2016-05-07 sally 39

我尝试了 df.nlargest(3, 'value') 但我得到了这个奇怪的结果:

         name        value 
date
2016-05-01 kelly 20
2016-05-01 kelly 20
2016-05-01 kelly 20
2016-05-05 tom 40
2016-05-05 tom 40
2016-05-05 tom 40
2016-05-05 sarah 25
2016-05-05 sarah 25
2016-05-05 sarah 25
2016-05-07 kara 24
2016-05-07 kara 24
...
2016-05-07 sally 39
2016-05-07 sally 39
2016-05-07 jane 90
2016-05-07 jane 90
2016-05-07 jane 90

我尝试每天运行它:
[df.ix[day].nlargest(3, 'value') for day in df.index.unique()]

但我遇到了同样的问题(每个名称重复 3 次)

最佳答案

首先,这将完成工作:

df.sort_values('value', ascending=False).groupby(level=0).head(3).sort_index()

关于python - pandas nlargest 返回超过 n 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37624912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com