
使用Pandas GroupBy 取得每個組別的統計數據
在進行資料分析時,通常需要匯總資料併計算觀察組的統計數據併計算觀察組的統計數據。 Pandas 的 GroupBy 函數提供了一種方便的方法來執行此操作。
要計算群組統計數據,只需在 DataFrame 上使用 .groupby() 方法並指定要分組的欄位即可。然後,您可以使用 .agg() 方法聚合每個群組內的資料。
例如,以下程式碼以「col1」和「col2」列將資料分組並計算平均值:
1 | df[ 'col1' , 'col2' ].groupby([ 'col1' , 'col2' ]).mean()
|
登入後複製
這將傳回一個包含群組統計資訊的DataFrame,類似於:
1 2 3 4 5 6 | col3 col4 col5 col6
col1 col2
A B -0.3725 -0.810 0.0325 0.5425
C D -0.4766 -0.110 1.3467 -0.6833
E F 0.4550 0.475 -1.0650 0.0300
G H 1.4800 -0.630 0.6500 0.1700
|
登入後複製
包含行計數
將行計數加入組別統計資料非常簡單。您可以使用 .size() 方法來計算每個群組中的行數。例如:
1 | df.groupby([ 'col1' , 'col2' ]).size()
|
登入後複製
這將傳回一個包含行數的系列,然後您可以將其加入DataFrame 中:
1 | df.groupby([ 'col1' , 'col2' ]).size().reset_index(name= 'counts' )
|
登入後複製
包含多個統計資料
除了平均值之外,您還可以使用.agg() 方法計算其他統計數據,例如中位數、最小值和最大值。例如,以下程式碼計算「col4」列的平均值、中位數和最小值:
1 | df.groupby([ 'col1' , 'col2' ]).agg({ 'col4' : [ 'mean' , 'median' , 'min' ]})
|
登入後複製
這將傳回包含群組統計資訊的DataFrame,類似於:
1 2 3 4 5 6 7 | col4
mean median min
col1 col2
A B -0.3725 -0.810 -1.32
C D -0.4766 -0.110 -1.65
E F 0.4550 0.475 -0.47
G H 1.4800 -0.630 -0.63
|
登入後複製
其他注意事項
- 如果您希望按多列分組,在.groupby()方法中使用列表。
- 缺失值可能會影響組別計算。 Pandas 會在計算平均值和中位數等過程中排除缺失值。
- 處理大型資料集時,請考慮使用帶有 chunksize 參數的 .agg() 方法來提高效能。
以上是Pandas GroupBy 如何計算統計數據並包含行數以進行資料分析?的詳細內容。更多資訊請關注PHP中文網其他相關文章!