用法:
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。