首页  >  文章  >  后端开发  >  如何在 Pandas 中使用 GroupBy 和聚合对组内的结果进行排序?

如何在 Pandas 中使用 GroupBy 和聚合对组内的结果进行排序?

DDD
DDD原创
2024-10-20 17:22:31423浏览

How to Sort Results within Groups Using GroupBy and Aggregation in Pandas?

pandas groupby 和组内排序

想要对 groupby 聚合的结果进行排序是一项常见任务。在此示例中,我们有一个包含两列“job”和“source”以及一个“count”列的 DataFrame,我们要对其进行分组和排序。

为此,我们可以使用 groupby () 方法按“作业”和“源”列对 DataFrame 进行分组。然后,我们可以使用 agg() 方法聚合“count”列,在本例中使用 sum 函数。

In [168]: df.groupby(['job','source']).agg({'count':sum})

Out[168]:
               count
job    source       
market A           5
       B           3
       C           2
       D           4
       E           1
sales  A           2
       B           4
       C           6
       D           3
       E           7

这将为我们提供一个包含分组结果的新 DataFrame。然后,我们可以使用 sort_values() 方法对每个组中的“count”列进行降序排序。

In [34]: df.sort_values(['job','count'],ascending=False).groupby('job').head(3)

Out[35]: 
   count     job source
4      7   sales      E
2      6   sales      C
1      4   sales      B
5      5  market      A
8      4  market      D
6      3  market      B

这将为我们提供一个新的 DataFrame,其中包含每个组的前 3 个结果。

以上是如何在 Pandas 中使用 GroupBy 和聚合对组内的结果进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn