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
Минимальное количество наблюдений в окне, необходимое для получения значения (в противном случае результат — NA). Для окна, заданного смещением, это значение по умолчанию равно 1.
freq : строка или объект DateOffset, необязательно (по умолчанию None)
Устаревшее с версии 0.18.0: Частота для приведения данных к виду перед вычислением статистики. Указывается как строка частоты или объект DateOffset.
center : boolean, по умолчанию False
Установить метки в центре окна.
win_type : строка, по умолчанию None
Укажите тип окна. См. примечания ниже.
on : строка, необязательно
Для DataFrame, столбец, по которому вычисляется скользящее окно, а не индекс
closed : строка, по умолчанию None
Сделайте интервал закрытым с правой, левой, обеих или ни одной стороны. Для окон, основанных на смещениях, по умолчанию устанавливается «правая» граница. Для фиксированных окон по умолчанию — «обе» границы. Остальные случаи не реализованы для фиксированных окон.
Новое в версии 0.20.0.
axis : int или строка, по умолчанию 0
Возвращает: Объект Window или Rolling, соответствующий конкретной операции
Примечания
По умолчанию результат устанавливается на правой границе окна. Это можно изменить на центр окна, установив
center=True.Ключевое слово
freqиспользуется для приведения временных рядов к заданной частоте путем ресемплирования данных. Это делается с помощью параметров по умолчаниюresample()(т.е. с использованиемmean).Чтобы узнать больше о смещениях и строках частоты, см. ссылку.
Распознаваемые типы окон:
boxcartriangblackmanhammingbartlettparzenbohmanblackmanharrisnuttallbarthann-
kaiser(требуется версия beta) -
gaussian(требуется стандарт) -
general_gaussian(требуется power, ширина) -
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.22.0/generated/pandas.DataFrame.rolling.html