如何對 DataFrame 中特定列內的資料進行分組和排序?

Barbara Streisand
發布: 2024-10-20 17:20:02
原創
125 人瀏覽過

How to Group and Sort Data within Specific Columns in a DataFrame?

Pandas Groupby 與群組內排序

依多列對 DataFrame 進行分組是資料操作中常見的任務。它允許我們按這些列聚合資料並對聚合結果執行進一步的操作。然而,通常需要對每個組內的聚合結果進行排序以獲得頂行或底行。

考慮問題中提供的DataFrame df:

   count     job source
0      2   sales      A
1      4   sales      B
2      6   sales      C
3      3   sales      D
4      7   sales      E
5      5  market      A
6      3  market      B
7      2  market      C
8      4  market      D
9      1  market      E
登入後複製

目標是按作業和來源列對df 進行分組,然後在每個組中按降序對「計數」列進行排序。為此,我們可以使用groupby() 和sort_values() 函數,如下所示:

<code class="python">df.groupby(['job', 'source'])['count'].sum().sort_values(ascending=False)</code>
登入後複製

這將按降序對每個群組中的「count」列進行排序,並提供以下輸出:

job    source       
sales  E           7
       C           6
       B           4
       D           3
       A           2
market A           5
       D           4
       B           3
       C           2
       E           1
登入後複製

但是,如果我們只想取得每組中的前三行,我們可以使用head() 函數:

<code class="python">df.groupby(['job', 'source'])['count'].sum().sort_values(ascending=False).groupby('job').head(3)</code>
登入後複製

這將給我們以下結果:

   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
登入後複製

透過組合groupby()、sort_values() 和head() 函數,我們可以有效地對pandas 中每個群組中的頂部或底部行進行分組、排序和選擇。

以上是如何對 DataFrame 中特定列內的資料進行分組和排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!