polars.Expr.rolling_rank
-
Вычисляет скользящий ранг.
Предупреждение
Эта функциональность считается нестабильной. Она может быть изменена в любой момент, и это не будет считаться нарушением обратной совместимости.
Окно длиной
window_sizeбудет перемещаться по массиву. Значения, попавшие в это окно, будут ранжироваться в соответствии с параметромmethod. Результирующие значения будут представлять собой ранг значения в конце скользящего окна.- Параметры:
-
- window_size
-
Целочисленный размер скользящего окна.
-
method{‘average’, ‘min’, ‘max’, ‘dense’, ‘random’} -
Метод, используемый для присвоения рангов совпадающим элементам. Доступны следующие методы (по умолчанию — «average»):
- ‘average’ : каждому значению присваивается среднее значение рангов, которые были бы присвоены всем совпадающим значениям.
- ‘min’ : каждому значению присваивается минимальный из рангов, которые были бы присвоены всем совпадающим значениям. (Этот метод также называется ранжированием «по соревнованиям».)
- ‘max’ : каждому значению присваивается максимальный из рангов, которые были бы присвоены всем совпадающим значениям.
- ‘dense’ : как ‘min’, но следующему по величине элементу присваивается ранг, непосредственно следующий за рангами совпадающих элементов.
- ‘random’ : каждому совпадающему значению присваивается случайный ранг.
- seed
-
Случайное начальное значение, используемое при
method='random'. Если задано None (по умолчанию), для каждой операции скользящего ранжирования генерируется случайное начальное значение. - min_samples
-
Количество значений в окне, которые должны быть не равны null, чтобы вычислить результат. Если задано
None(по умолчанию), значение будет установлено равнымwindow_size. - center
-
Размещать метки в центре окна.
- Возвращает:
-
- Expr
-
Expr с данными типа
Float64, еслиmethodравен"average", или с размером индекса (см.get_index_type()) в противном случае.
Примеры
>>> df = pl.DataFrame({"a": [1, 4, 4, 1, 9]}) >>> df.select(pl.col("a").rolling_rank(3, method="average")) shape: (5, 1) ┌──────┐ │ a │ │ --- │ │ f64 │ ╞══════╡ │ null │ │ null │ │ 2.5 │ │ 1.0 │ │ 3.0 │ └──────┘
Expr.rolling_rank(
window_size: int,
method: RankMethod = 'average',
*,
seed: int | None = None,
min_samples: int | None = None,
center: bool = False,
) → Expr
© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/expressions/api/polars.Expr.rolling_rank.html