当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pandas.core.groupby.SeriesGroupBy.aggregate用法及代码示例


用法:

SeriesGroupBy.aggregate(func=None, *args, engine=None, engine_kwargs=None, **kwargs)

在指定轴上使用一项或多项操作进行聚合。

参数

func函数、str、列表或字典

用于聚合数据的函数。如果是函数,则必须在传递 Series 或传递给 Series.apply 时工作。

接受的组合是:

  • function

  • 字符串函数名

  • 函数和/或函数名称列表,例如[np.sum, 'mean']

  • 轴标签的字典 -> 函数、函数名称或此类列表。

还可以接受指定了engine='numba' 的 Numba JIT 函数。此引擎仅支持传递单个函数。

如果选择'numba' 引擎,该函数必须是用户定义的函数,函数签名中的第一个和第二个参数分别是valuesindex。每个组的索引将传递给用户定义的函数,并且可以选择使用。

*args

要传递给 func 的位置参数。

enginestr,默认无
  • 'cython' :通过 cython 的 C-extensions 运行函数。

  • 'numba' :通过 numba 中的 JIT 编译代码运行函数。

  • None :默认为 'cython' 或全局设置 compute.use_numba

engine_kwargs字典,默认无
  • 对于'cython' 引擎,没有接受的engine_kwargs

  • 对于 'numba' 引擎,引擎可以接受 nopythonnogilparallel 字典键。这些值必须是 TrueFalse'numba' 引擎的默认 engine_kwargs{'nopython':True, 'nogil':False, 'parallel':False} 并将应用于函数

**kwargs

要传递给 func 的关键字参数。

返回

Series

注意

使用 engine='numba' 时,内部不会有 “fall back” 行为。组数据和组索引将作为 numpy 数组传递给 JITed 用户定义函数,并且不会尝试替代执行尝试。

改变传递对象的函数可能会产生意外行为或错误,因此不受支持。有关更多详细信息,请参阅使用用户定义函数 (UDF) 方法进行变异。

例子

>>> s = pd.Series([1, 2, 3, 4])
>>> s
0    1
1    2
2    3
3    4
dtype:int64
>>> s.groupby([1, 1, 2, 2]).min()
1    1
2    3
dtype:int64
>>> s.groupby([1, 1, 2, 2]).agg('min')
1    1
2    3
dtype:int64
>>> s.groupby([1, 1, 2, 2]).agg(['min', 'max'])
   min  max
1    1    2
2    3    4

可以通过将所需的列名和聚合作为关键字参数传递来控制输出列名。

>>> s.groupby([1, 1, 2, 2]).agg(
...     minimum='min',
...     maximum='max',
... )
   minimum  maximum
1        1        2
2        3        4
>>> s.groupby([1, 1, 2, 2]).agg(lambda x:x.astype(float).min())
1    1.0
2    3.0
dtype:float64

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.core.groupby.SeriesGroupBy.aggregate。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。