【问题标题】:Pandas: Get top 10 values AFTER groupingPandas:分组后获取前 10 个值
【发布时间】:2016-01-15 02:00:33
【问题描述】:

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

我认为类似以下的方法会起作用,但它不起作用:

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

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

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

【问题讨论】:

  • 你应该在问题中给出示例数据框。

标签: python pandas aggregate pandas-groupby


【解决方案1】:

这就是你要找的吗?

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

【讨论】:

    猜你喜欢
    • 2021-08-15
    • 2023-03-29
    • 2017-02-13
    • 2012-11-20
    • 2013-03-04
    • 1970-01-01
    • 2015-08-18
    • 2018-07-07
    • 2021-12-31
    相关资源
    最近更新 更多