Spec-Zone.ru › pandas 0.19

pandas.Series.rolling

Series.rolling(window, min_periods=None, freq=None, center=False, win_type=None, on=None, axis=0) [source]

Предоставляет вычисления с использованием скользящего окна.

Новая в версии 0.18.0.

Параметры:

window : int или смещение

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

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

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

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

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

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

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

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

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

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

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

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

Новая в версии 0.19.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, width)
  • slepian (требуется width).

Примеры

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

Spec-Zone.ru

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