Spec-Zone.ru › pandas 0.25

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, наследовающийся от подкласса для конкретной операции

См. также

expanding
Предоставляет расширяющие преобразования.
ewm
Предоставляет функции экспоненциально взвешенного скользящего среднего.

Примечания

По умолчанию результат устанавливается на правой границе окна. Это можно изменить на центр окна, установив center=True.

Чтобы узнать больше о смещениях и строках частоты, пожалуйста, обратитесь к этой ссылке.

Распознаваемые типы окон:

  • boxcar
  • triang
  • blackman
  • hamming
  • bartlett
  • parzen
  • bohman
  • blackmanharris
  • nuttall
  • barthann
  • 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API