首頁 > 後端開發 > Python教學 > 如何將多個函數應用於 Pandas GroupBy DataFrame 中的多個欄位?

如何將多個函數應用於 Pandas GroupBy DataFrame 中的多個欄位?

Linda Hamilton
發布: 2024-12-20 03:49:09
原創
638 人瀏覽過

How Can I Apply Multiple Functions to Multiple Columns in a Pandas GroupBy DataFrame?

將多個函數應用於多個分組列

處理分組資料時,Pandas 中的groupby 方法可讓您同時套用多個函數一本字典。但是,這種方法僅適用於 Series groupby 物件。

如果您有一個 groupby DataFrame 並希望將函數應用於多個列,那麼您將面臨將列名稱指定為字典中的鍵的挑戰。此外,某些函數可能依賴其他列,使得使用 agg 方法變得複雜。

以下是可用的選項:

使用 apply 方法

apply 方法隱含地將 DataFrame 傳遞給應用函數。這允許您同時處理多個列。使用字典將列名稱對應到聚合函數:

df.groupby('group').apply({'a': ['sum', 'max'], 'b': 'mean', 'c': 'sum', 'd': lambda x: x.max() - x.min()})
登入後複製

或者,您可以使用自訂函數傳回一系列所有聚合:

def f(x):
    return pd.Series({'a_sum': x['a'].sum(), 'a_max': x['a'].max(), 'b_mean': x['b'].mean(), 'c_d_prodsum': (x['c'] * x['d']).sum()})

df.groupby('group').apply(f)
登入後複製

限制和替代方案

  • apply 方法迭代地將函數應用於每個group,這對於大型資料集來說可能會很慢。
  • 如果您需要不是內建Pandas 函數的自訂聚合函數,您可能需要將agg 方法與自訂lambda 一起使用,或者對

總之,雖然Pandas 沒有內建方法將多個函數應用於groupby DataFrame 中的特定列,但apply 方法提供了適用於大多數場景的靈活且可自訂的解決方案。對於涉及多個列和依賴項的複雜聚合,您可能需要探索替代方法或手動迭代分組物件。

以上是如何將多個函數應用於 Pandas GroupBy DataFrame 中的多個欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板