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, 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, столбец, по которому рассчитывается скользящее окно, а не индекс.
-
axis : int or str, default 0 -
closed : str, default None -
Определяет, закрыто ли интервал слева, справа, с обеих сторон или ни с какой стороны. Для окон, заданных смещением, по умолчанию «справа». Для фиксированных окон по умолчанию «с обеих сторон». Остальные случаи не реализованы для фиксированных окон.
Введено в версии 0.20.0.
Возвращает: - a Window или Rolling, подкласс для конкретной операции
См. также
Примечания
По умолчанию результат устанавливается на правый край окна. Это можно изменить на центр окна, установив
center=True.Дополнительную информацию о смещениях и строках частоты см. на этой странице.
Распознаваемые типы окон:
boxcartriangblackmanhammingbartlettparzenbohmanblackmanharrisnuttallbarthann-
kaiser(требуется бета-версия) -
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.24.2/reference/api/pandas.DataFrame.rolling.html