在Pandas 中對同一列應用多個聚合
在pandas 中,GroupBy.agg() 提供了一種便捷的方法來執行多個函數分組資料。然而,使用 agg() 將不同的函數應用於同一列似乎具有挑戰性。
傳統上,語法上不正確但所需的方法是將重複的鍵傳遞給 agg() 的字典參數,這不是Python 中允許。
為了解決這個問題,pandas 提供了幾個選項:
選項1:列表元組
截至2022 年6 月20 日,首選方法是向agg() 提供元組[(column, function)]列表,其中每個元組代表要執行的聚合指定列。
df.groupby('dummy').agg( Mean=('returns', np.mean), Sum=('returns', np.sum))
選項2:巢狀字典
另一種方法是使用巢狀字典,其中外部鍵是列,內部值是要套用的函數。
df.groupby('dummy').agg({'returns': {'Mean': np.mean, 'Sum': np.sum}})
選項3:函數列表
對於 pandas 的歷史版本,另一個選擇是將函數作為列表傳遞給agg() 的字典參數。
df.groupby('dummy').agg({'returns': [np.mean, np.sum]})
透過利用這些選項,您可以方便地對同一列執行多個聚合,而不需要輔助函數或多次明確呼叫 agg()。
以上是如何將多個聚合應用於 Pandas 中的同一列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!