將多個函數應用於多個分組列
處理分組資料時,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)
限制和替代方案
總之,雖然Pandas 沒有內建方法將多個函數應用於groupby DataFrame 中的特定列,但apply 方法提供了適用於大多數場景的靈活且可自訂的解決方案。對於涉及多個列和依賴項的複雜聚合,您可能需要探索替代方法或手動迭代分組物件。
以上是如何將多個函數應用於 Pandas GroupBy DataFrame 中的多個欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!