pandas.core.resample.Resampler.aggregate#

окончательный Resampler.агрегировать(функция=None, *args, **kwargs)[источник]#

Агрегировать с использованием одной или нескольких операций по указанной оси.

Параметры:
функцияфункция, строка, список или словарь

Функция для агрегирования данных. Если это функция, она должна работать либо при передаче DataFrame, либо при передаче в DataFrame.apply.

Допустимые комбинации:

  • функция

  • имя строковой функции

  • список функций и/или имён функций, например [np.sum, 'mean']

  • словарь меток осей -> функции, имена функций или список таких.

*args

Позиционные аргументы для передачи в функция.

**kwargs

Именованные аргументы для передачи в функция.

Возвращает:
скаляр, Series или DataFrame

Возвращаемое значение может быть:

  • скаляр: когда Series.agg вызывается с одной функцией

  • Series: при вызове DataFrame.agg с одной функцией

  • DataFrame : когда DataFrame.agg вызывается с несколькими функциями

Смотрите также

DataFrame.groupby.aggregate

Агрегировать с использованием вызываемого объекта, строки, словаря или списка строк/вызываемых объектов.

DataFrame.resample.transform

Преобразует Series в каждой группе на основе заданной функции.

DataFrame.aggregate

Агрегировать с использованием одной или нескольких операций по указанной оси.

Примечания

Операции агрегации всегда выполняются по оси, либо по индексу (по умолчанию), либо по оси столбцов. Это поведение отличается от numpy функции агрегации (mean, медиана, prod, sum, std, var), где по умолчанию вычисляется агрегация сглаженного массива, например, numpy.mean(arr_2d) в отличие от numpy.mean(arr_2d, axis=0).

agg является псевдонимом для агрегировать. Используйте псевдоним.

Функции, изменяющие переданный объект, могут вызывать неожиданное поведение или ошибки и не поддерживаются. См. Изменение с помощью методов пользовательских функций (UDF) для получения дополнительной информации.

Переданная пользовательская функция получит Series для оценки.

Примеры

>>> 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