pandas.core.window.rolling.Rolling.apply#
- Rolling.apply(функция, raw=False, движок=None, engine_kwargs=None, args=None, kwargs=None)[источник]#
Вычислить скользящую пользовательскую агрегирующую функцию.
- Параметры:
- функцияфункция
Должен производить одно значение из входного ndarray, если
raw=Trueили одиночное значение из Series, еслиraw=False. Также может принимать функцию Numba JIT сengine='numba'указано.- rawbool, по умолчанию False
False: передает каждую строку или столбец как Series в функцию.True: переданная функция будет получать объекты ndarray вместо этого. Если вы просто применяете функцию редукции NumPy, это даст гораздо лучшую производительность.
- движокstr, по умолчанию None
'cython': Запускает rolling apply через C-расширения из cython.'numba': Запускает rolling apply через JIT-скомпилированный код из numba. Доступно только когдаrawустановлено вTrue.None: По умолчанию'cython'или глобальная установкаcompute.use_numba
- engine_kwargsdict, по умолчанию None
Для
'cython'движок, нет принятыхengine_kwargsДля
'numba'движок, движок может приниматьnopython,nogilиparallelключи словаря. Значения должны быть либоTrueилиFalse. По умолчаниюengine_kwargsдля'numba'движок это{'nopython': True, 'nogil': False, 'parallel': False}и будет применено к обоимfuncиapplyскользящая агрегация.
- argsкортеж, по умолчанию None
Позиционные аргументы, передаваемые в функцию.
- kwargsdict, по умолчанию None
Именованные аргументы для передачи в функцию.
- Возвращает:
- Series или DataFrame
Тип возвращаемого значения такой же, как у исходного объекта с
np.float64тип данных.
Смотрите также
pandas.Series.rollingВызов rolling с данными Series.
pandas.DataFrame.rollingВызов rolling с DataFrames.
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