首頁  >  文章  >  後端開發  >  如何使用 Pandas GroupBy 將資料分組並在群組內排序?

如何使用 Pandas GroupBy 將資料分組並在群組內排序?

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

How to Group Data and Sort Within Groups Using Pandas GroupBy?

Pandas GroupBy 和群組內排序

考慮這樣一種情況,您有一個包含多列的 DataFrame,並且您希望按兩列對行進行分組。分組後,您可能需要對每個群組內的聚合結果進行進一步排序,例如按計數列降序排序。以下是實現這一目標的方法:

要按多列將資料分組,然後在群組內進行排序,可以組合使用 groupby() 和 sort_values() 函數。例如,假設您有一個包含列計數、作業和來源的 DataFrame。

<code class="python">import pandas as pd

df = pd.DataFrame({'count': [2, 4, 6, 3, 7, 5, 3, 2, 4, 1],
                  'job': ['sales','sales','sales','sales','sales', 'market','market','market','market','market'],
                  'source': ['A','B','C','D','E','A','B','C','D','E']})</code>

要取得每個作業和來源組合的總數,您可以執行以下操作:

<code class="python">df.groupby(['job','source']).agg({'count':sum})</code>

接下來,要在每個群組中按降序對計數列進行排序並僅取前三行,您可以執行以下操作:

<code class="python">result = df.sort_values(['job','count'],ascending=False).groupby('job').head(3)</code>

這將傳回一個包含前三行的DataFrame每個作業組,按計數列降序排序。產生的 DataFrame 可能如下圖所示:

<code class="python">print(result)

   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</code>

以上是如何使用 Pandas GroupBy 將資料分組並在群組內排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn