1

我有一个带有“id”列和“值”列的熊猫数据框。它已经按第一个 id(升序)然后值(降序)排序。我需要的是每个 id 的前 10 个值。

我认为像下面这样的东西会起作用,但它不会:

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

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

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

4

1 回答 1

2

这是你要找的吗?

df.groupby('id').head(10)
于 2015-10-16T10:41:52.047 回答