pandas.core.resample.Resampler.aggregate#

final Resampler.aggregate(func=None, *args, **kwargs)[源代码][源代码]#

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

参数:
func函数, 字符串, 列表或字典

用于聚合数据的函数。如果是一个函数,必须能够在传递DataFrame时工作,或者在传递给DataFrame.apply时工作。

接受的组合是:

  • 函数

  • 字符串函数名

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

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

*args

传递给 func 的位置参数。

**kwargs

传递给 func 的关键字参数。

返回:
标量, 序列或数据框

返回可以是:

  • scalar : 当使用单个函数调用 Series.agg 时

  • Series : 当 DataFrame.agg 被调用时使用单个函数

  • DataFrame : 当使用多个函数调用 DataFrame.agg 时

参见

DataFrame.groupby.aggregate

使用可调用对象、字符串、字典或字符串/可调用对象列表进行聚合。

DataFrame.resample.transform

基于给定的函数转换每个组中的 Series。

DataFrame.aggregate

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

备注

聚合操作总是在一个轴上执行,要么是索引(默认)要么是列轴。这种行为与 numpy 聚合函数(mean, median, prod, sum, std, var)不同,后者的默认行为是计算展平数组的聚合,例如 numpy.mean(arr_2d) 而不是 numpy.mean(arr_2d, axis=0)

aggaggregate 的别名。使用这个别名。

修改传递对象的函数可能会产生意外行为或错误,并且不受支持。更多详情请参见 使用用户定义函数 (UDF) 方法进行变异

传递的用户定义函数将传递一个 Series 进行评估。

如果 func 定义了一个索引重标记,axis 必须是 0index

示例

>>> s = pd.Series([1, 2, 3, 4, 5],
...               index=pd.date_range('20130101', periods=5, freq='s'))
>>> s
2013-01-01 00:00:00    1
2013-01-01 00:00:01    2
2013-01-01 00:00:02    3
2013-01-01 00:00:03    4
2013-01-01 00:00:04    5
Freq: s, dtype: int64
>>> r = s.resample('2s')
>>> r.agg("sum")
2013-01-01 00:00:00    3
2013-01-01 00:00:02    7
2013-01-01 00:00:04    5
Freq: 2s, dtype: int64
>>> r.agg(['sum', 'mean', 'max'])
                     sum  mean  max
2013-01-01 00:00:00    3   1.5    2
2013-01-01 00:00:02    7   3.5    4
2013-01-01 00:00:04    5   5.0    5
>>> r.agg({'result': lambda x: x.mean() / x.std(),
...        'total': "sum"})
                       result  total
2013-01-01 00:00:00  2.121320      3
2013-01-01 00:00:02  4.949747      7
2013-01-01 00:00:04       NaN      5
>>> r.agg(average="mean", total="sum")
                         average  total
2013-01-01 00:00:00      1.5      3
2013-01-01 00:00:02      3.5      7
2013-01-01 00:00:04      5.0      5