Spec-Zone.ru › pandas 0.22

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

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

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

min_periods : int, по умолчанию None

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

freq : строка или объект DateOffset, необязательно (по умолчанию None)

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

center : boolean, по умолчанию False

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

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

Задайте тип окна. См. примечания ниже.

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

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

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

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

Добавлен в версии 0.20.0.

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

Возвращает:

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

Примечания

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

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

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

Признанные типы окон:

  • boxcar
  • triang
  • blackman
  • hamming
  • bartlett
  • parzen
  • bohman
  • blackmanharris
  • nuttall
  • barthann
  • kaiser (необходима бета-версия)
  • gaussian (необходима std)
  • general_gaussian (необходима power, ширина)
  • slepian (необходима ширина).

Если 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  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.22.0/generated/pandas.Series.rolling.html

Spec-Zone.ru

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