pandas.core.resample.Resampler.aggregate
- finalResampler.aggregate(func=None, *args, **kwargs)[source]
-
Агрегирование с использованием одной или нескольких операций над указанной осью.
- Параметры:
-
- func:функция, строка, список или словарь
-
Функция для агрегирования данных. Если функция, то она должна работать, когда ей передается DataFrame, или когда она передается в DataFrame.apply.
Допустимые комбинации:
функция
имя функции в виде строки
список функций и/или имён функций, например
[np.sum, 'mean']словарь меток осей -> функции, имена функций или списки таких.
- *args
-
Позиционные аргументы для передачи функции func.
- **kwargs
-
Именованные аргументы для передачи функции func.
- Возвращает:
-
- скаляр, Series или DataFrame
-
Возвращаемое значение может быть:
скаляр: когда 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).agg является псевдонимом для aggregate. Используйте псевдоним.
Функции, изменяющие переданный объект, могут привести к неожиданному поведению или ошибкам и не поддерживаются. Подробнее см. Изменения с помощью пользовательских функций (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
© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.2.2/reference/api/pandas.core.resample.Resampler.aggregate.html