Spec-Zone.ru › Polars

polars.LazyFrame.remove

LazyFrame.remove(
    *predicates: IntoExprColumn | Iterable[IntoExprColumn] | bool | list[bool] | np.ndarray[Any,
    Any],
    **constraints: Any,
) → LazyFrame

Удаляет строки, отбрасывая те, которые соответствуют заданному выражению-предикату (или выражениям).

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

Строки, для которых предикат фильтрации не возвращает True, остаются (в том числе строки, для которых предикат возвращает null).

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

Выражение (или выражения), возвращающее логический Series. Если задано несколько предикатов, они объединяются с помощью & (логическое И), поэтому строка удаляется, только если каждый предикат возвращает для неё True.

constraints

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

См. также

filter

Примечания

Если вы переходите с Pandas и выполняете фильтрацию на основе сравнения двух или более столбцов, обратите внимание: в Polars любое сравнение, в котором участвуют значения null, возвращает null, а не логическое значение True или False. В результате такие строки не будут удалены. Правильно обрабатывайте значения null, чтобы избежать неожиданного поведения (см. примеры ниже).

Примеры

>>> lf = pl.LazyFrame(
...     {
...         "foo": [2, 3, None, 4, 0],
...         "bar": [5, 6, None, None, 0],
...         "ham": ["a", "b", None, "c", "d"],
...     }
... )

Удаление строк, соответствующих условию:

>>> lf.remove(
...     pl.col("bar") >= 5,
... ).collect()
shape: (3, 3)
┌──────┬──────┬──────┐
│ foo  ┆ bar  ┆ ham  │
│ ---  ┆ ---  ┆ ---  │
│ i64  ┆ i64  ┆ str  │
╞══════╪══════╪══════╡
│ null ┆ null ┆ null │
│ 4    ┆ null ┆ c    │
│ 0    ┆ 0    ┆ d    │
└──────┴──────┴──────┘

Отбрасывание строк по нескольким условиям, объединённым операторами and/or:

>>> lf.remove(
...     (pl.col("foo") >= 0) & (pl.col("bar") >= 0),
... ).collect()
shape: (2, 3)
┌──────┬──────┬──────┐
│ foo  ┆ bar  ┆ ham  │
│ ---  ┆ ---  ┆ ---  │
│ i64  ┆ i64  ┆ str  │
╞══════╪══════╪══════╡
│ null ┆ null ┆ null │
│ 4    ┆ null ┆ c    │
└──────┴──────┴──────┘
>>> lf.remove(
...     (pl.col("foo") >= 0) | (pl.col("bar") >= 0),
... ).collect()
shape: (1, 3)
┌──────┬──────┬──────┐
│ foo  ┆ bar  ┆ ham  │
│ ---  ┆ ---  ┆ ---  │
│ i64  ┆ i64  ┆ str  │
╞══════╪══════╪══════╡
│ null ┆ null ┆ null │
└──────┴──────┴──────┘

Задание нескольких ограничений с помощью синтаксиса *args:

>>> lf.remove(
...     pl.col("ham").is_not_null(),
...     pl.col("bar") >= 0,
... ).collect()
shape: (2, 3)
┌──────┬──────┬──────┐
│ foo  ┆ bar  ┆ ham  │
│ ---  ┆ ---  ┆ ---  │
│ i64  ┆ i64  ┆ str  │
╞══════╪══════╪══════╡
│ null ┆ null ┆ null │
│ 4    ┆ null ┆ c    │
└──────┴──────┴──────┘

Задание ограничений с помощью синтаксиса **kwargs:

>>> lf.remove(foo=0, bar=0).collect()
shape: (4, 3)
┌──────┬──────┬──────┐
│ foo  ┆ bar  ┆ ham  │
│ ---  ┆ ---  ┆ ---  │
│ i64  ┆ i64  ┆ str  │
╞══════╪══════╪══════╡
│ 2    ┆ 5    ┆ a    │
│ 3    ┆ 6    ┆ b    │
│ null ┆ null ┆ null │
│ 4    ┆ null ┆ c    │
└──────┴──────┴──────┘

Удаление строк путём сравнения двух столбцов друг с другом; в этом примере удаляются строки, в которых значения двух столбцов не равны (используется ne_missing, чтобы значения null считались равными):

>>> lf.remove(
...     pl.col("foo").ne_missing(pl.col("bar")),
... ).collect()
shape: (2, 3)
┌──────┬──────┬──────┐
│ foo  ┆ bar  ┆ ham  │
│ ---  ┆ ---  ┆ ---  │
│ i64  ┆ i64  ┆ str  │
╞══════╪══════╪══════╡
│ null ┆ null ┆ null │
│ 0    ┆ 0    ┆ d    │
└──────┴──────┴──────┘

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

Spec-Zone.ru

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