Spec-Zone.ru › pandas 0.20

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 : целое число или смещение

Размер скользящего окна. Это количество наблюдений, используемых для вычисления статистики. Каждое окно будет фиксированного размера.

Если это смещение, то это временной период каждого окна. Каждое окно будет иметь переменный размер, основанный на наблюдениях, включённых во временной период. Это применимо только для индексов типа datetime. Новое в версии 0.19.0.

min_periods : целое число, по умолчанию None

Минимальное количество наблюдений в окне, необходимое для получения значения (в противном случае результат — NA). Для окна, заданного смещением, это значение по умолчанию 1.

freq : строка или объект DateOffset, необязательно (по умолчанию None) (УСТАРЕЛО)

Частота для приведения данных к виду, необходимому для вычисления статистики. Указывается как строка частоты или объект DateOffset.

center : булево значение, по умолчанию False

Установить метки в центре окна.

win_type : строка, по умолчанию None

Тип окна. См. примечания ниже.

on : строка, необязательно

Для DataFrame, столбец, для которого нужно вычислить скользящее окно, вместо индекса

closed : строка, по умолчанию None

Сделать интервал закрытым справа, слева, с обеих сторон или ни с одной. Для окон, основанных на смещении, по умолчанию «справа». Для окон фиксированного размера по умолчанию «с обеих сторон». Остальные случаи не реализованы для окон фиксированного размера.

Новая функция в версии 0.20.0.

axis : целое число или строка, по умолчанию 0

Возвращает:

объект Window или Rolling, являющийся подклассом для конкретной операции

Примечания

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

Ключевое слово freq используется для приведения временных рядов к указанной частоте путём повторной выборки данных. Это выполняется с параметрами по умолчанию resample() (т.е. с использованием mean).

Дополнительную информацию о смещениях и строках частоты см. на этой странице.

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

  • boxcar
  • triang
  • blackman
  • hamming
  • bartlett
  • parzen
  • bohman
  • blackmanharris
  • nuttall
  • barthann
  • kaiser (требуется версия beta)
  • gaussian (требуется стандартная версия)
  • general_gaussian (требуется функция power, ширина)
  • slepian (требуется ширина).

Примеры

>>> 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.20.3/generated/pandas.Series.rolling.html

Spec-Zone.ru

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