Spec-Zone.ru › Polars

polars.Expr.filter

Expr.filter(
    *predicates: IntoExprColumn | Iterable[IntoExprColumn],
    **constraints: Any,
) → Expr

Фильтрует выражение на основе одного или нескольких выражений-предикатов.

Исходный порядок оставшихся элементов сохраняется.

Элементы, для которых фильтр не возвращает True, отбрасываются, в том числе null-значения.

В основном полезно в контексте агрегации. Если нужно фильтровать на уровне DataFrame, используйте LazyFrame.filter.

движок:В памятиПотоковая обработкаРаспределённая обработка
Параметры:
predicates

Выражение или выражения, возвращающие булев ряд.

constraints

Фильтры столбцов; используйте name = value для фильтрации столбцов по заданному значению. Каждое ограничение будет работать так же, как pl.col(name).eq(value), и неявно объединяться с другими условиями фильтрации с помощью &.

Примеры

>>> df = pl.DataFrame(
...     {
...         "group_col": ["g1", "g1", "g2"],
...         "b": [1, 2, 3],
...     }
... )
>>> df.group_by("group_col").agg(
...     lt=pl.col("b").filter(pl.col("b") < 2).sum(),
...     gte=pl.col("b").filter(pl.col("b") >= 2).sum(),
... ).sort("group_col")
shape: (2, 3)
┌───────────┬─────┬─────┐
│ group_col ┆ lt  ┆ gte │
│ ---       ┆ --- ┆ --- │
│ str       ┆ i64 ┆ i64 │
╞═══════════╪═════╪═════╡
│ g1        ┆ 1   ┆ 2   │
│ g2        ┆ 0   ┆ 3   │
└───────────┴─────┴─────┘

Для выражений фильтрации также можно задавать ограничения в виде именованных аргументов.

>>> df = pl.DataFrame(
...     {
...         "key": ["a", "a", "a", "a", "b", "b", "b", "b", "b"],
...         "n": [1, 2, 2, 3, 1, 3, 3, 2, 3],
...     },
... )
>>> df.group_by("key").agg(
...     n_1=pl.col("n").filter(n=1).sum(),
...     n_2=pl.col("n").filter(n=2).sum(),
...     n_3=pl.col("n").filter(n=3).sum(),
... ).sort(by="key")
shape: (2, 4)
┌─────┬─────┬─────┬─────┐
│ key ┆ n_1 ┆ n_2 ┆ n_3 │
│ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ i64 ┆ i64 ┆ i64 │
╞═════╪═════╪═════╪═════╡
│ a   ┆ 1   ┆ 4   ┆ 3   │
│ b   ┆ 1   ┆ 2   ┆ 9   │
└─────┴─────┴─────┴─────┘

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

Spec-Zone.ru

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