polars.Expr.qcut
-
Разбивает непрерывные значения на дискретные категории на основе их квантилей.
Предупреждение
Эта функциональность считается нестабильной. Она может быть изменена в любой момент без необходимости считать это несовместимым изменением.
- Параметры:
-
- quantiles
-
Список вероятностей квантилей от 0 до 1 или положительное целое число, определяющее количество интервалов с равномерной вероятностью.
- labels
-
Названия категорий. Количество меток должно совпадать с количеством категорий.
- left_closed
-
Задать для интервалов включение левой границы вместо правой.
- allow_duplicates
-
Если установлено значение
True, повторяющиеся значения в полученных квантилях удаляются, а не вызываютDuplicateError. Это может произойти даже при уникальных вероятностях, в зависимости от данных. - include_breaks
-
Добавить столбец с правой границей интервала, в который попадает каждое наблюдение. Это изменит тип данных результата с
CategoricalнаStruct.
- Возвращает:
-
- Expr
-
Выражение типа данных
Categorical, если дляinclude_breaksзадано значениеFalse(по умолчанию); в противном случае — выражение типа данныхStruct.
См. также
Примеры
Разделить столбец на три категории в соответствии с предварительно заданными вероятностями квантилей.
>>> df = pl.DataFrame({"foo": [-2, -1, 0, 1, 2]}) >>> df.with_columns( ... pl.col("foo").qcut([0.25, 0.75], labels=["a", "b", "c"]).alias("qcut") ... ) shape: (5, 2) ┌─────┬──────┐ │ foo ┆ qcut │ │ --- ┆ --- │ │ i64 ┆ cat │ ╞═════╪══════╡ │ -2 ┆ a │ │ -1 ┆ a │ │ 0 ┆ b │ │ 1 ┆ b │ │ 2 ┆ c │ └─────┴──────┘Разделить столбец на две категории, используя равномерные вероятности квантилей.
>>> df.with_columns( ... pl.col("foo") ... .qcut(2, labels=["low", "high"], left_closed=True) ... .alias("qcut") ... ) shape: (5, 2) ┌─────┬──────┐ │ foo ┆ qcut │ │ --- ┆ --- │ │ i64 ┆ cat │ ╞═════╪══════╡ │ -2 ┆ low │ │ -1 ┆ low │ │ 0 ┆ high │ │ 1 ┆ high │ │ 2 ┆ high │ └─────┴──────┘Добавить категорию и границу интервала.
>>> df.with_columns( ... pl.col("foo").qcut([0.25, 0.75], include_breaks=True).alias("qcut") ... ).unnest("qcut") shape: (5, 3) ┌─────┬────────────┬────────────┐ │ foo ┆ breakpoint ┆ category │ │ --- ┆ --- ┆ --- │ │ i64 ┆ f64 ┆ cat │ ╞═════╪════════════╪════════════╡ │ -2 ┆ -1.0 ┆ (-inf, -1] │ │ -1 ┆ -1.0 ┆ (-inf, -1] │ │ 0 ┆ 1.0 ┆ (-1, 1] │ │ 1 ┆ 1.0 ┆ (-1, 1] │ │ 2 ┆ inf ┆ (1, inf] │ └─────┴────────────┴────────────┘
Expr.qcut(
quantiles: Sequence[float] | int,
*,
labels: Sequence[str_] | None = None,
left_closed: bool = False,
allow_duplicates: bool = False,
include_breaks: 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.qcut.html