考慮這樣一種情況,您有一個包含多列的 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中文網其他相關文章!