熊猫:分组后得到前10名

时间:2015-10-16 10:36:17

标签: python pandas aggregate pandas-groupby

我有一个pandas数据框,其中包含一列' id'和一列值'#39;。它已按第一个id(升序)排序,然后按值(降序)排序。我需要的是每个id的前10个值。

我认为类似下面这样的东西会起作用,但它没有:

df.groupby("id", as_index=False).aggregate(lambda (index,rows) : rows.iloc[:10])

我得到的只是一个id列表,值列(以及我为该问题省略的其他列)不再存在。

任何想法如何完成,不迭代每一行并将前十行附加到另一个数据结构?

1 个答案:

答案 0 :(得分:2)

这是你要找的吗?

df.groupby('id').head(10)