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