用法:
DataFrameGroupBy.aggregate(arg, split_every=None, split_out=1)
在指定軸上使用一項或多項操作進行聚合。
此文檔字符串是從 pandas.core.groupby.generic.DataFrameGroupBy.aggregate 複製而來的。
可能存在與 Dask 版本的一些不一致之處。
- func:function、str、list 或 dict(在 Dask 中不支持)
用於聚合數據的函數。如果是函數,則必須在傳遞 DataFrame 或傳遞給 DataFrame.apply 時工作。
接受的組合是:
- function
- 字符串函數名
- 函數和/或函數名稱列表,例如
[np.sum, 'mean']
- 軸標簽的字典 -> 函數、函數名稱或此類列表。
還可以接受指定了
engine='numba'
的 Numba JIT 函數。此引擎僅支持傳遞單個函數。如果選擇
'numba'
引擎,該函數必須是用戶定義的函數,函數簽名中的第一個和第二個參數分別是values
和index
。每個組的索引將傳遞給用戶定義的函數,並且可以選擇使用。- *args:
要傳遞給 func 的位置參數。
- engine:str,默認無(在 Dask 中不支持)
'cython'
:通過 cython 的 C-extensions 運行函數。'numba'
:通過來自 numba 的 JIT 編譯代碼運行函數。None
:默認為'cython'
或全局設置compute.use_numba
- engine_kwargs:dict,默認無(在 Dask 中不支持)
- 對於
'cython'
引擎,沒有接受的engine_kwargs
- 對於
'numba'
引擎,引擎可以接受nopython
,nogil
和parallel
字典鍵。這些值必須是True
或False
。'numba'
引擎的默認engine_kwargs
是{'nopython': True, 'nogil': False, 'parallel': False}
並將應用於函數
- 對於
- **kwargs:
要傳遞給 func 的關鍵字參數。
- DataFrame
參數:
返回:
注意:
使用
engine='numba'
時,內部不會有 “fall back” 行為。組數據和組索引將作為 numpy 數組傳遞給 JITed 用戶定義函數,並且不會嘗試替代執行嘗試。改變傳遞對象的函數可能會產生意外行為或錯誤,因此不受支持。有關更多詳細信息,請參閱使用用戶定義函數 (UDF) 方法進行變異。
例子:
>>> df = pd.DataFrame( ... { ... "A": [1, 1, 2, 2], ... "B": [1, 2, 3, 4], ... "C": [0.362838, 0.227877, 1.267767, -0.562860], ... } ... )
>>> df A B C 0 1 1 0.362838 1 1 2 0.227877 2 2 3 1.267767 3 2 4 -0.562860
聚合針對每一列。
>>> df.groupby('A').agg('min') B C A 1 1 0.227877 2 3 -0.562860
多個聚合
>>> df.groupby('A').agg(['min', 'max']) B C min max min max A 1 1 2 0.227877 0.362838 2 3 4 -0.562860 1.267767
選擇要聚合的列
>>> df.groupby('A').B.agg(['min', 'max']) min max A 1 1 2 2 3 4
每列不同的聚合
>>> df.groupby('A').agg({'B': ['min', 'max'], 'C': 'sum'}) B C min max sum A 1 1 2 0.590715 2 3 4 0.704907
為了控製每列具有不同聚合的輸出名稱,pandas 支持“named aggregation”
>>> df.groupby("A").agg( ... b_min=pd.NamedAgg(column="B", aggfunc="min"), ... c_sum=pd.NamedAgg(column="C", aggfunc="sum")) b_min c_sum A 1 1 0.590715 2 3 0.704907
- 關鍵字是輸出列名
- 這些值是元組,其第一個元素是要選擇的列,第二個元素是要應用於該列的聚合。 Pandas 提供帶有字段
['column', 'aggfunc']
的pandas.NamedAgg
命名元組,以便更清楚地了解參數是什麽。像往常一樣,聚合可以是可調用的或字符串別名。
有關更多信息,請參閱命名聚合。
>>> df.groupby("A")[["B"]].agg(lambda x: x.astype(float).min()) B A 1 1.0 2 3.0
相關用法
- Python dask.dataframe.groupby.DataFrameGroupBy.corr用法及代碼示例
- Python dask.dataframe.groupby.DataFrameGroupBy.idxmin用法及代碼示例
- Python dask.dataframe.groupby.DataFrameGroupBy.idxmax用法及代碼示例
- Python dask.dataframe.groupby.DataFrameGroupBy.cov用法及代碼示例
- Python dask.dataframe.groupby.DataFrameGroupBy.rolling用法及代碼示例
- Python dask.dataframe.groupby.DataFrameGroupBy.mean用法及代碼示例
- Python dask.dataframe.groupby.DataFrameGroupBy.cumcount用法及代碼示例
- Python dask.dataframe.groupby.SeriesGroupBy.nunique用法及代碼示例
- Python dask.dataframe.groupby.SeriesGroupBy.rolling用法及代碼示例
- Python dask.dataframe.groupby.SeriesGroupBy.aggregate用法及代碼示例
- Python dask.dataframe.groupby.SeriesGroupBy.cumcount用法及代碼示例
- Python dask.dataframe.groupby.Aggregation用法及代碼示例
- Python dask.dataframe.groupby.SeriesGroupBy.idxmin用法及代碼示例
- Python dask.dataframe.groupby.SeriesGroupBy.mean用法及代碼示例
- Python dask.dataframe.groupby.SeriesGroupBy.idxmax用法及代碼示例
- Python dask.dataframe.Series.apply用法及代碼示例
- Python dask.dataframe.to_records用法及代碼示例
- Python dask.dataframe.DataFrame.applymap用法及代碼示例
- Python dask.dataframe.Series.clip用法及代碼示例
- Python dask.dataframe.Series.prod用法及代碼示例
注:本文由純淨天空篩選整理自dask.org大神的英文原創作品 dask.dataframe.groupby.DataFrameGroupBy.aggregate。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。