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 : int или смещение
Размер скользящего окна. Это число наблюдений, используемых для вычисления статистики. Каждое окно будет иметь фиксированный размер.
Если это смещение, то это временной период каждого окна. Каждое окно будет иметь переменный размер, основанный на наблюдениях, включённых во временной период. Это допустимо только для индексов типа datetime. Это нововведение в версии 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(необходима бета-версия) -
gaussian(необходима std) -
general_gaussian(необходима power, ширина) -
slepian(необходима ширина).
Если
win_type=Noneвсе точки имеют одинаковый вес. Дополнительную информацию о различных типах окон см. в scipy.signal окно функций.Примеры
>>> 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.Series.rolling.html