Spec-Zone.ru › pandas 2

pandas.core.window.rolling.Rolling.apply

Rolling.apply(func, raw=False, engine=None, engine_kwargs=None, args=None, kwargs=None)[source]

Вычисление пользовательской функции агрегирования с учётом скользящего окна.

Параметры:
func:функция

Должна возвращать единственное значение из массива ndarray, если raw=True, или единственное значение из Series, если raw=False. Также может принимать функцию Numba JIT с engine='numba'.

raw:bool, по умолчанию False
  • False : передаёт каждую строку или столбец в функцию в виде Series.

  • True : переданная функция будет получать объекты ndarray вместо этого. Если вы просто применяете функцию NumPy для сведения, это позволит добиться значительно лучшей производительности.

engine:str, по умолчанию None
  • 'cython' : Запускает rolling apply через C-расширения из cython.

  • 'numba' : Запускает rolling apply через JIT-скомпилированный код из numba. Доступно только когда raw установлено в True.

  • None : По умолчанию 'cython' или глобально установлено compute.use_numba.

engine_kwargs:dict, по умолчанию None
  • Для 'cython' движка допустимые engine_kwargs отсутствуют.

  • Для 'numba' движка движок может принимать nopython, nogil и parallel ключи словаря. Значения должны быть либо True либо False. По умолчанию engine_kwargs для 'numba' движка {'nopython': True, 'nogil': False, 'parallel': False} и будет применено как к func, так и к apply агрегированию по скользящему окну.

args:tuple, по умолчанию None

Позиционные аргументы, которые необходимо передать в функцию func.

kwargs:dict, по умолчанию None

Аргументы ключевых слов, которые необходимо передать в функцию func.

Возвращаемое значение:
Series или DataFrame

Тип возвращаемого значения такой же, как у исходного объекта, с np.float64 типом данных.

См. также

pandas.Series.rolling

Вызов rolling с данными Series.

pandas.DataFrame.rolling

Вызов rolling с DataFrame.

pandas.Series.apply

Агрегирующая функция apply для Series.

pandas.DataFrame.apply

Агрегирующая функция apply для DataFrame.

Примеры

>>> ser = pd.Series([1, 6, 5, 4])
>>> ser.rolling(2).apply(lambda s: s.sum() - s.min())
0    NaN
1    6.0
2    6.0
3    5.0
dtype: float64

© 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.window.rolling.Rolling.apply.html

Spec-Zone.ru

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