首頁 > 後端開發 > Python教學 > 如何在 Pandas GroupBy 中計算分組統計(計數、平均值等)?

如何在 Pandas GroupBy 中計算分組統計(計數、平均值等)?

Barbara Streisand
發布: 2024-12-28 04:36:10
原創
531 人瀏覽過

How to Calculate Group-wise Statistics (Count, Mean, etc.) in Pandas GroupBy?

使用Pandas GroupBy 取得每個組別的統計數據(計數、平均值等)

問題:

問題:

問題:

df.groupby(['col1','col2']).size()
登入後複製

問題:

df.groupby(['col1', 'col2']).size().reset_index(name='counts')
登入後複製
登入後複製

你有一個Pandas 中的DataFrame df並希望計算分組統計數據,例如多個數據的平均值、計數等

快速解答:

  col1 col2  col3  col4  col5  col6
0    A    B  0.20 -0.61 -0.49  1.49
1    A    B -1.53 -1.01 -0.39  1.82
2    A    B -0.44  0.27  0.72  0.11
3    A    B  0.28 -1.32  0.38  0.18
4    C    D  0.12  0.59  0.81  0.66
5    C    D -0.13 -1.65 -1.64  0.50
6    C    D -1.42 -0.11 -0.18 -0.44
7    E    F -0.00  1.42 -0.26  1.17
8    E    F  0.91 -0.47  1.35 -0.34
9    G    H  1.48 -0.63 -1.14  0.17
登入後複製
要取得每個組的行數,只需調用.size(),它會傳回一個系列:

對於以計數為列的DataFrame結果,使用:

df.groupby(['col1', 'col2']).size()
登入後複製

詳細範例:
col1  col2
A     B       4
C     D       3
E     F       2
G     H       1
dtype: int64
登入後複製

考慮 DataFrame df:

df.groupby(['col1', 'col2']).size().reset_index(name='counts')
登入後複製
登入後複製

取得行計數:

  col1 col2  counts
0    A    B       4
1    C    D       3
2    E    F       2
3    G    H       1
登入後複製

輸出:

使用下列指令DataFrame計數:
(df
.groupby(['col1', 'col2'])
.agg({
    'col3': ['mean', 'count'],
    'col4': ['median', 'min', 'count']
}))
登入後複製

            col4                  col3      
          median   min count      mean count
col1 col2                                   
A    B    -0.810 -1.32     4 -0.372500     4
C    D    -0.110 -1.65     3 -0.476667     3
E    F     0.475 -0.47     2  0.455000     2
G    H    -0.630 -0.63     1  1.480000     1
登入後複製
輸出:

包含更多統計結果:

gb = df.groupby(['col1', 'col2'])
counts = gb.size().to_frame(name='counts')
(counts
 .join(gb.agg({'col3': 'mean'}).rename(columns={'col3': 'col3_mean'}))
 .join(gb.agg({'col4': 'median'}).rename(columns={'col4': 'col4_median'}))
 .join(gb.agg({'col4': 'min'}).rename(columns={'col4': 'col4_min'}))
 .reset_index()
)
登入後複製
要計算平均值等其他統計數據,中位數和最小值,使用agg():

  col1 col2  counts  col3_mean  col4_median  col4_min
0    A    B       4  -0.372500       -0.810     -1.32
1    C    D       3  -0.476667       -0.110     -1.65
2    E    F       2   0.455000        0.475     -0.47
3    G    H       1   1.480000       -0.630     -0.63
登入後複製
輸出:將統計資料分割為單獨的聚合:要對輸出進行更多控制,請分割統計數據並將它們結合起來使用加入:輸出:

以上是如何在 Pandas GroupBy 中計算分組統計(計數、平均值等)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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