Spec-Zone.ru › pandas 0.21

pandas.DataFrame.rolling

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

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

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

Параметры:

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

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

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

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

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

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

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

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

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

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

Указать тип окна. См. примечания ниже.

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

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

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

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

Новая в версии 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 (требуется стандарт)
  • general_gaussian (требуется мощность, ширина)
  • slepian (требуется ширина).

Если win_type=None все точки имеют равный вес. Для получения дополнительной информации о различных типах окон см. scipy.signal window functions.

Примеры

>>> 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.21.1/generated/pandas.DataFrame.rolling.html

Spec-Zone.ru

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