pandas.DataFrame.rolling
-
DataFrame.rolling(window, min_periods=None, freq=None, center=False, win_type=None, on=None, axis=0, closed=None)[source] -
Предоставляет вычисления с использованием скользящего окна.
Новая в версии 0.18.0.
Параметры: window : int или смещение
Размер скользящего окна. Это число наблюдений, используемых для расчёта статистики. Каждое окно будет иметь фиксированный размер.
Если это смещение, то это период времени для каждого окна. Каждое окно будет иметь переменный размер, основанный на наблюдениях, включённых в период времени. Это допустимо только для индексов datetimelike. Это нововведение в 0.19.0
min_periods : int, по умолчанию None
Минимальное количество наблюдений в окне, необходимое для получения значения (в противном случае результатом будет NaN). Для окна, заданного смещением, это значение по умолчанию равно 1.
freq : строка или объект DateOffset, необязательно (по умолчанию None)
Устарело начиная с версии 0.18.0: Частота для приведения данных к соответствию перед вычислением статистики. Задаётся как строка частоты или объект DateOffset.
center : boolean, по умолчанию False
Установить метки в центре окна.
win_type : строка, по умолчанию None
Указать тип окна. См. примечания ниже.
on : строка, необязательно
Для DataFrame, столбец, по которому следует вычислить скользящее окно, а не индекс
closed : строка, по умолчанию None
Сделать интервал закрытым по правой, левой, обеим или ни одной границам. Для окон, основанных на смещении, по умолчанию 'right'. Для фиксированных окон по умолчанию 'both'. Остальные случаи не реализованы для фиксированных окон.
Новая в версии 0.20.0.
axis : int или строка, по умолчанию 0
Возвращает: объект Window или Rolling, специализированный для конкретной операции
Примечания
По умолчанию результат устанавливается на правом краю окна. Это можно изменить на центр окна, установив
center=True.Ключевое слово
freqиспользуется для приведения временных рядов к заданной частоте путем ресемплирования данных. Это выполняется с параметрами по умолчанию дляresample()(т.е. используяmean).Для получения дополнительной информации о смещениях и строках частоты, пожалуйста, посетите эту ссылку.
Распознаваемые типы окон:
boxcartriangblackmanhammingbartlettparzenbohmanblackmanharrisnuttallbarthann-
kaiser(требуется бета-версия) -
gaussian(требуется стандарт) -
general_gaussian(требуется мощность, ширина) -
slepian(требуется ширина).
Если
win_type=Noneвсе точки имеют равный вес. Для получения дополнительной информации о различных типах окон см. scipy.signal window functions.Примеры
>>> df = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]}) >>> df B 0 0.0 1 1.0 2 2.0 3 NaN 4 4.0Сумма скользящего окна длиной 2, используя тип окна 'triang'.
>>> df.rolling(2, win_type='triang').sum() B 0 NaN 1 1.0 2 2.5 3 NaN 4 NaNСумма скользящего окна длиной 2, min_periods по умолчанию равно длине окна.
>>> df.rolling(2).sum() B 0 NaN 1 1.0 2 3.0 3 NaN 4 NaNТо же самое, что и выше, но явно задано min_periods
>>> df.rolling(2, min_periods=1).sum() B 0 0.0 1 1.0 2 3.0 3 2.0 4 4.0Неравномерный (т.е. не регулярной частоты), DataFrame с индексом времени
>>> df = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]}, ....: index = [pd.Timestamp('20130101 09:00:00'), ....: pd.Timestamp('20130101 09:00:02'), ....: pd.Timestamp('20130101 09:00:03'), ....: pd.Timestamp('20130101 09:00:05'), ....: pd.Timestamp('20130101 09:00:06')])>>> df B 2013-01-01 09:00:00 0.0 2013-01-01 09:00:02 1.0 2013-01-01 09:00:03 2.0 2013-01-01 09:00:05 NaN 2013-01-01 09:00:06 4.0В отличие от целочисленного скользящего окна, это окно будет иметь переменную длину, соответствующую периоду времени. По умолчанию min_periods равно 1.
>>> df.rolling('2s').sum() B 2013-01-01 09:00:00 0.0 2013-01-01 09:00:02 1.0 2013-01-01 09:00:03 3.0 2013-01-01 09:00:05 NaN 2013-01-01 09:00:06 4.0
© 2008–2012, 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/0.21.1/generated/pandas.DataFrame.rolling.html