Spec-Zone.ru › pandas 0.21

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

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

Если это смещение, то это период времени каждого окна. Каждое окно будет иметь переменный размер, основанный на наблюдениях, включенных в период времени. Это верно только для индексов 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

Сделать интервал закрытым с правого, левого, обоих или ни с какого конца. Для окон, основанных на смещениях, по умолчанию — ‘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 (требуется std)
  • general_gaussian (требуется power, width)
  • 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.21.1/generated/pandas.Series.rolling.html

Spec-Zone.ru

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