使用 Pandas GroupBy.agg() 在同一列上進行多個聚合
使用 Pandas 時,通常需要對同一列。雖然直觀,但在 agg() 方法中多次指定同一列的直接方法在語法上並不正確。這就引出瞭如何使用 GroupBy.agg() 有效且簡潔地將不同聚合函數應用於單一欄位的問題。
解決方案
截至2022-06- 20、多重聚合的建議做法是使用字典語法:
df.groupby('dummy').agg({ 'returns': {'Mean': np.mean, 'Sum': np.sum} })
在此例如, “returns”列與平均值和總和函數一起聚合。產生的 DataFrame 將包含兩個新欄位“Mean”和“Sum”,它們顯示各自的聚合。
歷史記錄
採用字典之前語法上,多重聚合有兩種替代方法:
df.groupby('dummy').agg({'returns': [np.mean, np.sum]})
此方法將函數作為列表直接傳遞給agg()。 DataFrame 將包含兩個新列,分別包含平均值和總和聚合的結果。
df.groupby('dummy').agg({'returns': {'f1': np.mean, 'f2': np.sum}})
與列表方法類似,函數作為字典中的字典傳遞。內部字典的鍵指定函數名稱,而值是聚合函數。 DataFrame 將為每個指定的函數名稱有一列。
以上是如何使用 Pandas GroupBy.agg() 在單一欄位上執行多個聚合?的詳細內容。更多資訊請關注PHP中文網其他相關文章!