用法:
DataFrameGroupBy.aggregate(func=None, *args, engine=None, engine_kwargs=None, **kwargs)
在指定軸上使用一項或多項操作進行聚合。
- func:函數、str、列表或字典
用於聚合數據的函數。如果是函數,則必須在傳遞 DataFrame 或傳遞給 DataFrame.apply 時工作。
接受的組合是:
function
字符串函數名
函數和/或函數名稱列表,例如
[np.sum, 'mean']
軸標簽的字典 -> 函數、函數名稱或此類列表。
還可以接受指定了
engine='numba'
的 Numba JIT 函數。此引擎僅支持傳遞單個函數。如果選擇
'numba'
引擎,該函數必須是用戶定義的函數,函數簽名中的第一個和第二個參數分別是values
和index
。每個組的索引將傳遞給用戶定義的函數,並且可以選擇使用。- *args:
要傳遞給 func 的位置參數。
- engine:str,默認無
'cython'
:通過 cython 的 C-extensions 運行函數。'numba'
:通過 numba 中的 JIT 編譯代碼運行函數。None
:默認為'cython'
或全局設置compute.use_numba
- engine_kwargs:字典,默認無
對於
'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 pandas.core.groupby.DataFrameGroupBy.hist用法及代碼示例
- Python pandas.core.groupby.DataFrameGroupBy.resample用法及代碼示例
- Python pandas.core.groupby.DataFrameGroupBy.quantile用法及代碼示例
- Python pandas.core.groupby.DataFrameGroupBy.cumcount用法及代碼示例
- Python pandas.core.groupby.DataFrameGroupBy.sample用法及代碼示例
- Python pandas.core.groupby.DataFrameGroupBy.fillna用法及代碼示例
- Python pandas.core.groupby.DataFrameGroupBy.filter用法及代碼示例
- Python pandas.core.groupby.DataFrameGroupBy.nunique用法及代碼示例
- Python pandas.core.groupby.DataFrameGroupBy.describe用法及代碼示例
- Python pandas.core.groupby.DataFrameGroupBy.value_counts用法及代碼示例
- Python pandas.core.groupby.DataFrameGroupBy.transform用法及代碼示例
- Python pandas.core.groupby.DataFrameGroupBy.cov用法及代碼示例
- Python pandas.core.groupby.DataFrameGroupBy.corr用法及代碼示例
- Python pandas.core.groupby.DataFrameGroupBy.diff用法及代碼示例
- Python pandas.core.groupby.DataFrameGroupBy.take用法及代碼示例
- Python pandas.core.groupby.DataFrameGroupBy.idxmax用法及代碼示例
- Python pandas.core.groupby.DataFrameGroupBy.rank用法及代碼示例
- Python pandas.core.groupby.DataFrameGroupBy.boxplot用法及代碼示例
- Python pandas.core.groupby.DataFrameGroupBy.idxmin用法及代碼示例
- Python pandas.core.groupby.GroupBy.nth用法及代碼示例
注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.core.groupby.DataFrameGroupBy.aggregate。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。