polars.LazyFrame.group_by
-
Начать операцию группировки.
- Параметры:
-
- *by
-
Столбец или столбцы для группировки. Принимаются выражения. Строки интерпретируются как имена столбцов.
- maintain_order
-
Обеспечить порядок групп, соответствующий порядку входных данных. Это медленнее, чем группировка по умолчанию. Если задать значение
True, выполнение с разбиением на разделы станет невозможным. - **named_by
-
Дополнительные столбцы для группировки, задаваемые именованными аргументами. Столбцам будут присвоены имена соответствующих аргументов.
Примеры
Сгруппируйте данные по одному столбцу и вызовите
agg, чтобы вычислить сумму значений другого столбца в каждой группе.>>> lf = pl.LazyFrame( ... { ... "a": ["a", "b", "a", "b", "c"], ... "b": [1, 2, 1, 3, 3], ... "c": [5, 4, 3, 2, 1], ... } ... ) >>> lf.group_by("a").agg(pl.col("b").sum()).collect() shape: (3, 2) ┌─────┬─────┐ │ a ┆ b │ │ --- ┆ --- │ │ str ┆ i64 │ ╞═════╪═════╡ │ a ┆ 2 │ │ b ┆ 5 │ │ c ┆ 3 │ └─────┴─────┘Задайте
maintain_order=True, чтобы порядок групп соответствовал порядку входных данных.>>> lf.group_by("a", maintain_order=True).agg(pl.col("c")).collect() shape: (3, 2) ┌─────┬───────────┐ │ a ┆ c │ │ --- ┆ --- │ │ str ┆ list[i64] │ ╞═════╪═══════════╡ │ a ┆ [5, 3] │ │ b ┆ [4, 2] │ │ c ┆ [1] │ └─────┴───────────┘Сгруппируйте данные по нескольким столбцам, передав список имён столбцов.
>>> lf.group_by(["a", "b"]).agg(pl.max("c")).collect() shape: (4, 3) ┌─────┬─────┬─────┐ │ a ┆ b ┆ c │ │ --- ┆ --- ┆ --- │ │ str ┆ i64 ┆ i64 │ ╞═════╪═════╪═════╡ │ a ┆ 1 ┆ 5 │ │ b ┆ 2 ┆ 4 │ │ b ┆ 3 ┆ 2 │ │ c ┆ 3 ┆ 1 │ └─────┴─────┴─────┘Можно также передать несколько позиционных аргументов для группировки по нескольким столбцам. Допускаются также выражения.
>>> lf.group_by("a", pl.col("b") // 2).agg( ... pl.col("c").mean() ... ).collect() shape: (3, 3) ┌─────┬─────┬─────┐ │ a ┆ b ┆ c │ │ --- ┆ --- ┆ --- │ │ str ┆ i64 ┆ f64 │ ╞═════╪═════╪═════╡ │ a ┆ 0 ┆ 4.0 │ │ b ┆ 1 ┆ 3.0 │ │ c ┆ 1 ┆ 1.0 │ └─────┴─────┴─────┘
LazyFrame.group_by(
*by: IntoExpr | Iterable[IntoExpr],
maintain_order: bool = False,
**named_by: IntoExpr,
) → LazyGroupBy
© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/lazyframe/api/polars.LazyFrame.group_by.html