pandas.DataFrame.rolling
-
DataFrame.rolling(window, min_periods=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.
center : boolean, по умолчанию False
Установить метки в центре окна.
win_type : строка, по умолчанию None
Указать тип окна. Если
None, все точки имеют одинаковый вес. Более подробную информацию см. в примечаниях ниже.on : строка, необязательно
Для DataFrame, столбец, для которого рассчитывается скользящее окно, а не индекс
closed : строка, по умолчанию None
Установить интервал закрытым в правой, левой, обеих или ни одной точках. Для окон, основанных на смещениях, по умолчанию используется «правая». Для окон фиксированного размера по умолчанию используется «обе». Остальные случаи не реализованы для окон фиксированного размера.
Добавлена в версии 0.20.0.
-
axis : int or string, default 0
Возвращает: - a Window или Rolling подкласс для конкретной операции
См. также
Примечания
По умолчанию результат устанавливается в правой границе окна. Это можно изменить на центр окна, установив
center=True.Чтобы узнать больше о смещениях и строках частоты, см. ссылку.
Распознаваемые типы окон:
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.23.4/generated/pandas.DataFrame.rolling.html