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中文网其他相关文章!