Spec-Zone.ru › pandas 0.24

pandas.DataFrame.rolling

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

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

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

Параметры:
window : int, or offset

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

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

min_periods : int, default None

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

center : bool, default False

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

win_type : str, default None

Указывает тип окна. Если None, все точки имеют одинаковый вес. Дополнительную информацию см. в примечаниях ниже.

on : str, optional

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

axis : int or str, default 0
closed : str, default None

Определяет, закрыто ли интервал слева, справа, с обеих сторон или ни с какой стороны. Для окон, заданных смещением, по умолчанию «справа». Для фиксированных окон по умолчанию «с обеих сторон». Остальные случаи не реализованы для фиксированных окон.

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

Возвращает:
a Window или Rolling, подкласс для конкретной операции

См. также

expanding
Предоставляет расширяющие преобразования.
ewm
Предоставляет функции экспоненциального взвешивания.

Примечания

По умолчанию результат устанавливается на правый край окна. Это можно изменить на центр окна, установив center=True.

Дополнительную информацию о смещениях и строках частоты см. на этой странице.

Распознаваемые типы окон:

  • boxcar
  • triang
  • blackman
  • hamming
  • bartlett
  • parzen
  • bohman
  • blackmanharris
  • nuttall
  • barthann
  • kaiser (требуется бета-версия)
  • 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.24.2/reference/api/pandas.DataFrame.rolling.html

Spec-Zone.ru

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