Spec-Zone.ru › pandas 2

pandas.core.resample.Resampler.apply

Resampler.apply(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.apply.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API