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.headsort_values

df.sort_values(['item', 'value'], ascending=False).groupby('item').head(10)

或者nlargest:

df.groupby('item').value.nlargest(10).reset_index()

【讨论】:

以上是关于Pandas每组中的前n个值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

获取每组的前 n 个结果 [重复]

在每组中查找前 N 个值

SQLite:仅返回每组中的前 2 个结果

获取 JSON 文件中的前 10 个值 [重复]

从数据的数据组中分别绘制折线图[重复]

获取组的n个最大值[重复]