如何在 Pandas DataFrame 中對組內的資料進行排序?

Susan Sarandon
發布: 2024-10-20 17:27:02
原創
346 人瀏覽過

How to Sort Data Within Groups in Pandas DataFrames?

在pandas 中分組排序

使用pandas 資料框時,通常需要按特定列將資料分組,然後執行其他操作在這些群體中。一個常見的要求是根據特定標準對分組資料進行排序。

要實現此目的,可以將 groupby 函數與 sort_values 函數連結。例如,考慮一個包含 count、job 和 source 欄位的資料框 df。

In [167]: df

Out[167]:
   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
登入後複製

如果您想要按job 和source 對資料進行分組,然後按count 降序對聚合結果進行排序,您可以執行以下操作:

In [168]: df.groupby(['job','source']).agg({'count':sum})
登入後複製

這將建立一個新的資料框,其中包含每個組的聚合計數值。但是,產生的資料幀不會按計數排序。若要對資料幀進行排序,您可以使用 sort_values 函數:

In [34]: df.sort_values(['job','count'],ascending=False)
登入後複製

這將首先按作業對資料幀進行排序,然後按計數降序排列。產生的資料框將如下所示:

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

要取得每組的前三行,您可以使用head 函數:

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

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

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板