首頁  >  文章  >  後端開發  >  如何在 Pandas 中使用 GroupBy 和聚合對群組內的結果進行排序?

如何在 Pandas 中使用 GroupBy 和聚合對群組內的結果進行排序?

DDD
DDD原創
2024-10-20 17:22:31422瀏覽

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