首頁 >後端開發 >Python教學 >如何使用 pandas GroupBy 將多個聚合函數套用到同一列?

如何使用 pandas GroupBy 將多個聚合函數套用到同一列?

Patricia Arquette
Patricia Arquette原創
2024-12-08 11:42:12456瀏覽

How Can I Apply Multiple Aggregation Functions to the Same Column Using pandas GroupBy?

使用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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn