pandas.Series.rolling
- Series.rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None, step=None, method='single')[source]
-
Предоставление расчётов скользящего окна.
- Параметры
-
- window:int, смещение или подкласс BaseIndexer
-
Размер скользящего окна.
Если целое число, фиксированное количество наблюдений, используемых для каждого окна.
Если смещение, временной период каждого окна. Каждое окно будет иметь переменный размер, в зависимости от наблюдений, включённых в временной период. Это допустимо только для индексов datetimelike. Для получения дополнительной информации об смещениях и строках частоты, пожалуйста, обратитесь к данной ссылке.
Если подкласс BaseIndexer, границы окна на основе определённого
get_window_boundsметода. Дополнительные аргументы rolling, а именноmin_periods,center,closedиstepбудут переданы вget_window_bounds. - min_periods:int, по умолчанию None
-
Минимальное количество наблюдений в окне, необходимое для получения значения; в противном случае результат
np.nan.Для окна, заданного смещением,
min_periodsпо умолчанию будет 1.Для окна, заданного целым числом,
min_periodsпо умолчанию будет равно размеру окна. - center:bool, по умолчанию False
-
Если False, метки окна устанавливаются как правый край индекса окна.
Если True, метки окна устанавливаются как центр индекса окна.
- win_type:str, по умолчанию None
-
Если
None, все точки равномерно взвешиваются.Если строка, она должна быть допустимой функцией окна scipy.signal.
Некоторые типы окон Scipy требуют передачи дополнительных параметров в функцию агрегации. Дополнительные параметры должны соответствовать ключевым словам, указанным в сигнатуре метода типа окна Scipy.
- on:str, необязательно
-
Для DataFrame, метка столбца или уровень индекса, на котором следует рассчитать скользящее окно, а не индекс DataFrame.
Указанный целочисленный столбец игнорируется и исключается из результата, так как целочисленный индекс не используется для расчёта скользящего окна.
- axis:int или str, по умолчанию 0
-
Если
0или'index', перемещение по строкам.Если
1или'columns', перемещение по столбцам.Для Series этот параметр не используется и по умолчанию равен 0.
- closed:str, по умолчанию None
-
Если
'right', первая точка в окне исключается из расчётов.Если
'left', последняя точка в окне исключается из расчётов.Если
'both', никакие точки в окне не исключаются из расчётов.Если
'neither', первая и последняя точки в окне исключаются из расчётов.Значение по умолчанию
None('right').Изменено в версии 1.2.0: Параметр closed с фиксированными окнами теперь поддерживается.
- step:int, по умолчанию None
-
..versionadded:: 1.5.0
Вычислить окно через каждые
stepрезультат, эквивалентно срезу как[::step].windowдолжен быть целым числом. Использование параметра step, отличного от None или 1, даст результат с другой формой, чем входной. - method:str {‘single’, ‘table’}, по умолчанию ‘single’
-
Введено в версии 1.3.0.
Выполнить операцию скользящего окна по одному столбцу или строке (
'single') или по всему объекту ('table').Этот аргумент реализован только при указании
engine='numba'в вызове метода.
- Возвращает
-
-
Windowподкласс, если передаётсяwin_type -
Rollingподкласс, еслиwin_typeне передаётся
-
См. также
Примечания
Дополнительные сведения об использовании и примерах см. в разделе Операции с окнами.
Примеры
>>> 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.0window
Сумма скользящего окна с длиной окна в 2 наблюдения.
>>> df.rolling(2).sum() B 0 NaN 1 1.0 2 3.0 3 NaN 4 NaNСумма скользящего окна с размахом окна в 2 секунды.
>>> df_time = 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_time 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>>> df_time.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Сумма скользящего окна с окнами, направленными вперёд, с 2 наблюдениями.
>>> indexer = pd.api.indexers.FixedForwardWindowIndexer(window_size=2) >>> df.rolling(window=indexer, min_periods=1).sum() B 0 1.0 1 3.0 2 2.0 3 4.0 4 4.0min_periods
Сумма скользящего окна с длиной окна в 2 наблюдения, но для расчёта значения требуется минимум 1 наблюдение.
>>> df.rolling(2, min_periods=1).sum() B 0 0.0 1 1.0 2 3.0 3 2.0 4 4.0center
Сумма скользящего окна, результат присваивается центру индекса окна.
>>> df.rolling(3, min_periods=1, center=True).sum() B 0 1.0 1 3.0 2 3.0 3 6.0 4 4.0>>> df.rolling(3, min_periods=1, center=False).sum() B 0 0.0 1 1.0 2 3.0 3 3.0 4 6.0step
Сумма скользящего окна с длиной окна в 2 наблюдения, минимум 1 наблюдение для расчёта значения, и шаг в 2.
>>> df.rolling(2, min_periods=1, step=2).sum() B 0 0.0 2 3.0 4 4.0win_type
Сумма скользящего окна с длиной окна в 2, используя тип окна Scipy
'gaussian'.stdтребуется в функции агрегации.>>> df.rolling(2, win_type='gaussian').sum(std=3) B 0 NaN 1 0.986207 2 2.958621 3 NaN 4 NaN
© 2008–2022, 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/1.5.0/reference/api/pandas.Series.rolling.html