Spec-Zone.ru › pandas 0.22

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

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

Spec-Zone.ru

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