Spec-Zone.ru › Polars

polars.Series.rolling_mean_by

Series.rolling_mean_by(
    by: IntoExpr,
    window_size: timedelta | str_,
    *,
    min_samples: int = 1,
    closed: ClosedInterval = 'right',
) → Self

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

Предупреждение

Эта функциональность считается нестабильной. Она может быть изменена в любой момент без того, чтобы это считалось нарушающим обратную совместимость изменением.

Для столбца by <t_0, t_1, ..., t_n> closed="right" (значение по умолчанию) означает, что окна будут следующими:

  • (t_0 - window_size, t_0]
  • (t_1 - window_size, t_1]
  • …
  • (t_n - window_size, t_n]
Параметры:
by

Должен иметь тип данных DateTime, Date, UInt64, UInt32, Int64 или Int32 (обратите внимание, что для целочисленных типов требуется использовать 'i' в window size).

window_size

Длина окна. Может быть динамическим временным интервалом, заданным объектом timedelta, или строкой на следующем языке:

  • 1ns (1 наносекунда)
  • 1us (1 микросекунда)
  • 1ms (1 миллисекунда)
  • 1s (1 секунда)
  • 1m (1 минута)
  • 1h (1 час)
  • 1d (1 календарный день)
  • 1w (1 календарная неделя)
  • 1mo (1 календарный месяц)
  • 1q (1 календарный квартал)
  • 1y (1 календарный год)
  • 1i (1 индексный отсчёт)

Под «календарным днём» подразумевается соответствующее время следующего дня (который может длиться не 24 часа из-за перехода на летнее время; в неоднозначных случаях мы следуем RFC-5545 и сохраняем смещение DST исходной даты и времени). Аналогично трактуются «календарная неделя», «календарный месяц», «календарный квартал» и «календарный год».

min_samples

Количество значений в окне, которые должны быть ненулевыми, прежде чем будет вычислен результат.

closed{‘left’, ‘right’, ‘both’, ‘none’}

Задаёт, какие границы временного интервала включены; по умолчанию — 'right'.

Примечания

Если требуется вычислить несколько агрегатных статистик для одного и того же динамического окна, рассмотрите возможность использовать rolling — этот метод может кэшировать вычисление размера окна.

Примеры

Создайте ряд со значением индекса строки

>>> from datetime import timedelta, datetime
>>> start = datetime(2001, 1, 1)
>>> stop = datetime(2001, 1, 2)
>>> s = pl.Series("index", range(25))
>>> s
shape: (25,)
Series: 'index' [i64]
[
    0
    1
    2
    3
    4
    …
    20
    21
    22
    23
    24
]

Создайте другой ряд, чтобы применить маску окна:

>>> d = pl.Series("date", pl.datetime_range(start, stop, "1h", eager=True))
>>> d
shape: (25,)
Series: 'date' [datetime[μs]]
[
    2001-01-01 00:00:00
    2001-01-01 01:00:00
    2001-01-01 02:00:00
    2001-01-01 03:00:00
    2001-01-01 04:00:00
    …
    2001-01-01 20:00:00
    2001-01-01 21:00:00
    2001-01-01 22:00:00
    2001-01-01 23:00:00
    2001-01-02 00:00:00
]

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

>>> s.rolling_mean_by(d, "3h")
shape: (25,)
Series: 'index' [f64]
[
    0.0
    0.5
    1.0
    2.0
    3.0
    …
    19.0
    20.0
    21.0
    22.0
    23.0
]

© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/series/api/polars.Series.rolling_mean_by.html

Spec-Zone.ru

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