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