我有一个pandas数据框,其中包含一列' id'和一列值'#39;。它已按第一个id(升序)排序,然后按值(降序)排序。我需要的是每个id的前10个值。
我认为类似下面这样的东西会起作用,但它没有:
df.groupby("id", as_index=False).aggregate(lambda (index,rows) : rows.iloc[:10])
我得到的只是一个id列表,值列(以及我为该问题省略的其他列)不再存在。
任何想法如何完成,不迭代每一行并将前十行附加到另一个数据结构?
答案 0 :(得分:2)
这是你要找的吗?
df.groupby('id').head(10)