pandas.Series.rolling
-
Series.rolling(self, window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None)[source] -
Предоставление расчётов скользящего окна.
Введено в версии 0.18.0.
Параметры: -
window : int, or offset -
Размер скользящего окна. Это число наблюдений, используемых для расчёта статистики. Каждое окно будет фиксированного размера.
Если это смещение, то это будет временной период каждого окна. Каждое окно будет переменного размера, в зависимости от наблюдений, включённых в временной период. Это справедливо только для индексов типа datetime. Это нововведение в версии 0.19.0
-
min_periods : int, default None -
Минимальное число наблюдений в окне, необходимое для получения значения (иначе результат — NA). Для окна, заданного смещением,
min_periodsпо умолчанию будет равно 1. В противном случае,min_periodsпо умолчанию будет равно размеру окна. -
center : bool, default False -
Установить метки в центре окна.
-
win_type : str, default None -
Предоставление типа окна. Если
None, все точки имеют одинаковый вес. Более подробная информация в примечаниях ниже. -
on : str, optional -
Для DataFrame, столбец типа datetime, по которому рассчитывается скользящее окно, а не индекс DataFrame. Предоставленный целочисленный столбец игнорируется и исключается из результата, так как целочисленный индекс не используется для расчёта скользящего окна.
-
axis : int or str, default 0 -
closed : str, default None -
Сделать интервал закрытым с правой, левой, обеих сторон или ни с одной. Для окон, основанных на смещениях, по умолчанию устанавливается «правая». Для окон фиксированного размера — «обе». Остальные случаи не реализованы для окон фиксированного размера.
Введено в версии 0.20.0.
Возвращает: - объект Window или Rolling, наследовающийся от подкласса для конкретной операции
См. также
Примечания
По умолчанию результат устанавливается на правой границе окна. Это можно изменить на центр окна, установив
center=True.Чтобы узнать больше о смещениях и строках частоты, пожалуйста, обратитесь к этой ссылке.
Распознаваемые типы окон:
boxcartriangblackmanhammingbartlettparzenbohmanblackmanharrisnuttallbarthann-
kaiser(требуется бета-версия) -
gaussian(требуется std) -
general_gaussian(требуется power, width) -
slepian(требуется width) -
exponential(требуется tau), центр установлен в None.
Если
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 0.5 2 1.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.25.0/reference/api/pandas.Series.rolling.html