Spec-Zone.ru › pandas 0.19

pandas.DataFrame.rolling

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

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

Введено в версии 0.18.0.

Параметры:

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

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

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

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

Минимальное число наблюдений в окне, необходимое для получения значения (в противном случае результат — NA). Для окна, заданного смещением, это значение по умолчанию равно 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 (требуется стандарт)
  • general_gaussian (требуется мощность, ширина)
  • 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.19.2/generated/pandas.DataFrame.rolling.html

Spec-Zone.ru

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