Spec-Zone.ru › Polars

polars.LazyFrame.sort

LazyFrame.sort(
    by: IntoExpr | Iterable[IntoExpr],
    *more_by: IntoExpr,
    descending: bool | Sequence[bool] = False,
    nulls_last: bool | Sequence[bool] = False,
    maintain_order: bool = False,
    multithreaded: bool = True,
) → LazyFrame

Сортирует LazyFrame по заданным столбцам.

движок:В памятиЧастично распределённый
Параметры:
by

Столбец или столбцы для сортировки. Принимает выражения, включая селекторы. Строки интерпретируются как имена столбцов.

*more_by

Дополнительные столбцы для сортировки, указываемые в виде позиционных аргументов.

descending

Сортировать в порядке убывания. При сортировке по нескольким столбцам можно указать порядок для каждого столбца, передав последовательность логических значений.

nulls_last

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

maintain_order

Сохранять ли порядок элементов с одинаковыми значениями. Обратите внимание: если true потоковая обработка невозможна, производительность может снизиться, поскольку для этого требуется стабильный поиск.

multithreaded

Сортировать с использованием нескольких потоков.

Примеры

Передайте имя одного столбца, чтобы отсортировать данные по нему.

>>> lf = pl.LazyFrame(
...     {
...         "a": [1, 2, None],
...         "b": [6.0, 5.0, 4.0],
...         "c": ["a", "c", "b"],
...     }
... )
>>> lf.sort("a").collect()
shape: (3, 3)
┌──────┬─────┬─────┐
│ a    ┆ b   ┆ c   │
│ ---  ┆ --- ┆ --- │
│ i64  ┆ f64 ┆ str │
╞══════╪═════╪═════╡
│ null ┆ 4.0 ┆ b   │
│ 1    ┆ 6.0 ┆ a   │
│ 2    ┆ 5.0 ┆ c   │
└──────┴─────┴─────┘

Также поддерживается сортировка по выражениям.

>>> lf.sort(pl.col("a") + pl.col("b") * 2, nulls_last=True).collect()
shape: (3, 3)
┌──────┬─────┬─────┐
│ a    ┆ b   ┆ c   │
│ ---  ┆ --- ┆ --- │
│ i64  ┆ f64 ┆ str │
╞══════╪═════╪═════╡
│ 2    ┆ 5.0 ┆ c   │
│ 1    ┆ 6.0 ┆ a   │
│ null ┆ 4.0 ┆ b   │
└──────┴─────┴─────┘

Чтобы отсортировать данные по нескольким столбцам, передайте список столбцов.

>>> lf.sort(["c", "a"], descending=True).collect()
shape: (3, 3)
┌──────┬─────┬─────┐
│ a    ┆ b   ┆ c   │
│ ---  ┆ --- ┆ --- │
│ i64  ┆ f64 ┆ str │
╞══════╪═════╪═════╡
│ 2    ┆ 5.0 ┆ c   │
│ null ┆ 4.0 ┆ b   │
│ 1    ┆ 6.0 ┆ a   │
└──────┴─────┴─────┘

Или используйте позиционные аргументы для сортировки по нескольким столбцам тем же способом.

>>> lf.sort("c", "a", descending=[False, True]).collect()
shape: (3, 3)
┌──────┬─────┬─────┐
│ a    ┆ b   ┆ c   │
│ ---  ┆ --- ┆ --- │
│ i64  ┆ f64 ┆ str │
╞══════╪═════╪═════╡
│ 1    ┆ 6.0 ┆ a   │
│ null ┆ 4.0 ┆ b   │
│ 2    ┆ 5.0 ┆ c   │
└──────┴─────┴─────┘

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

Spec-Zone.ru

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