熊猫每件物品的前十大价值

时间:2019-10-07 15:39:40

标签: python pandas

我有一个类似的数据框

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

,我想保持item的前10名value(将其余的都丢弃),而不考虑其他任何列。它们没有排序。

在我的输入示例之后,由于我编写的内容不足以使每个项目都得到10,因此如果我想要前1个,则预期的输出将是这样的:

item      date       hour     value
  a         4         12       123
  c         4          5       114
  b         1          7       200
...       ...        ...       ...

我已经看过这个answer,但是我不确定如何告诉大熊猫以value进行计算。

1 个答案:

答案 0 :(得分:1)

您可以同时['item', 'value']sort_values一起groupby.head

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

或使用nlargest

df.groupby('item').value.nlargest(10).reset_index()
相关问题