Spec-Zone.ru › pandas 0.25

pandas.DataFrame.rolling

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

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

Добавлено в версии 0.18.0.

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

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

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

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

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

Добавлено в версии 0.20.0.

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

См. также

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

Примечания

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

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

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

  • boxcar
  • triang
  • blackman
  • hamming
  • bartlett
  • parzen
  • bohman
  • blackmanharris
  • nuttall
  • barthann
  • kaiser (требуется бета-версия)
  • gaussian (требуется std)
  • general_gaussian (требуется power, width)
  • slepian (требуется ширина)
  • exponential (требуется tau), center устанавливается в None.

Если 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  0.5
2  1.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.25.0/reference/api/pandas.DataFrame.rolling.html

Spec-Zone.ru

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