使用GroupBy 對同一列上的多個函數進行聚合
在Python 的pandas 函式庫中,GroupBy.agg() 函數提供了一種便捷的方法將聚合函數應用於分組資料。然而,值得注意的是,將多個函數應用於同一列可能會很棘手。
最初,使用以下語法似乎很直觀:
df.groupby("dummy").agg({"returns": f1, "returns": f2})
但是,這種方法會失敗,因為Python 中不允許重複鍵。相反,pandas 提供了幾種執行此類聚合的方法:
方法 1:函數列表
函數可以作為列表傳遞:
df.groupby("dummy").agg({"returns": [np.mean, np.sum]})
方法2:字典函數
函數可以作為字典傳遞,其中鍵代表列名,值代表函數列表:
df.groupby("dummy").agg({"returns": {"Mean": np.mean, "Sum": np.sum}})
方法3 :最近更新(如2022-06-20)
在最新版本的在pandas 中,以下語法是首選:
df.groupby('dummy').agg( Mean=('returns', np.mean), Sum=('returns', np.sum))
此語法不僅可以無縫運行,而且在指定聚合函數和列名稱方面提供了更高的清晰度和靈活性。
以上是如何使用 pandas GroupBy 將多個聚合函數套用到同一列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!