Pandas每组中的前n个值[重复]
Posted
技术标签:
【中文标题】Pandas每组中的前n个值[重复]【英文标题】:Pandas top n values in each group [duplicate] 【发布时间】:2020-02-04 22:40:55 【问题描述】:我有一个类似的数据框
item date hour value
a 4 12 123
a 6 11 54
b 1 7 146
c 8 1 97
a 9 5 10
c 4 5 114
b 1 7 200
... ... ... ...
并且我想通过value
保留前10 个item
(丢弃其余的没关系),不管其他列。它们没有排序。
按照我的输入示例,由于我写的内容不足以从每个项目中获得 10,因此如果我想要前 1 个,预期的输出将是这样的:
item date hour value
a 4 12 123
c 4 5 114
b 1 7 200
... ... ... ...
我已经看到了这个answer,但我不知道如何告诉熊猫使用value
进行计算。
【问题讨论】:
你能提供一个输入数据框和预期输出的例子吗?df.groupby('item')['value'].nlargest(10)
许多骗子涵盖了其他一些选项
【参考方案1】:
您可以通过['item', 'value']
和groupby.head
来sort_values
:
df.sort_values(['item', 'value'], ascending=False).groupby('item').head(10)
或者nlargest
:
df.groupby('item').value.nlargest(10).reset_index()
【讨论】:
以上是关于Pandas每组中的前n个值[重复]的主要内容,如果未能解决你的问题,请参考以下文章