polars.DataFrame.remove
-
Удаляет строки, отбрасывая те, которые соответствуют заданным выражениям-предикатам.
Исходный порядок оставшихся строк сохраняется.
Строки, для которых предикат фильтрации не возвращает True, сохраняются (в том числе строки, для которых предикат возвращает
null).- Параметры:
-
- predicates
-
Выражение или выражения, возвращающие булеву серию. Если задано несколько предикатов, они объединяются с помощью
&(логическое И), поэтому строка удаляется только в том случае, если каждый предикат возвращает True для этой строки. - constraints
-
Фильтры столбцов; используйте
name = value, чтобы фильтровать столбцы по заданному значению. Каждое ограничение работает так же, какpl.col(name).eq(value), и неявно объединяется с другими условиями фильтрации с помощью&.
См. также
Примечания
Если вы переходите с Pandas и выполняете операции фильтрации на основе сравнения двух или более столбцов, обратите внимание: в Polars любое сравнение с участием значений
nullвозвращает результатnull, а не булево значение True или False. Поэтому такие строки не удаляются. Чтобы избежать неожиданного поведения, правильно обрабатывайте нулевые значения (см. примеры ниже).Примеры
>>> df = pl.DataFrame( ... { ... "foo": [2, 3, None, 4, 0], ... "bar": [5, 6, None, None, 0], ... "ham": ["a", "b", None, "c", "d"], ... } ... )Удаление строк, соответствующих условию:
>>> df.remove(pl.col("bar") >= 5) shape: (3, 3) ┌──────┬──────┬──────┐ │ foo ┆ bar ┆ ham │ │ --- ┆ --- ┆ --- │ │ i64 ┆ i64 ┆ str │ ╞══════╪══════╪══════╡ │ null ┆ null ┆ null │ │ 4 ┆ null ┆ c │ │ 0 ┆ 0 ┆ d │ └──────┴──────┴──────┘Отбрасывание строк по нескольким условиям, объединённым операторами and/or:
>>> df.remove( ... (pl.col("foo") >= 0) & (pl.col("bar") >= 0), ... ) shape: (2, 3) ┌──────┬──────┬──────┐ │ foo ┆ bar ┆ ham │ │ --- ┆ --- ┆ --- │ │ i64 ┆ i64 ┆ str │ ╞══════╪══════╪══════╡ │ null ┆ null ┆ null │ │ 4 ┆ null ┆ c │ └──────┴──────┴──────┘>>> df.remove( ... (pl.col("foo") >= 0) | (pl.col("bar") >= 0), ... ) shape: (1, 3) ┌──────┬──────┬──────┐ │ foo ┆ bar ┆ ham │ │ --- ┆ --- ┆ --- │ │ i64 ┆ i64 ┆ str │ ╞══════╪══════╪══════╡ │ null ┆ null ┆ null │ └──────┴──────┴──────┘Задание нескольких ограничений с помощью синтаксиса
*args:>>> df.remove( ... pl.col("ham").is_not_null(), ... pl.col("bar") >= 0, ... ) shape: (2, 3) ┌──────┬──────┬──────┐ │ foo ┆ bar ┆ ham │ │ --- ┆ --- ┆ --- │ │ i64 ┆ i64 ┆ str │ ╞══════╪══════╪══════╡ │ null ┆ null ┆ null │ │ 4 ┆ null ┆ c │ └──────┴──────┴──────┘Задание ограничений с помощью синтаксиса
**kwargs:>>> df.remove(foo=0, bar=0) shape: (4, 3) ┌──────┬──────┬──────┐ │ foo ┆ bar ┆ ham │ │ --- ┆ --- ┆ --- │ │ i64 ┆ i64 ┆ str │ ╞══════╪══════╪══════╡ │ 2 ┆ 5 ┆ a │ │ 3 ┆ 6 ┆ b │ │ null ┆ null ┆ null │ │ 4 ┆ null ┆ c │ └──────┴──────┴──────┘
Удаление строк путём сравнения двух столбцов друг с другом:
>>> df.remove( ... pl.col("foo").ne_missing(pl.col("bar")), ... ) shape: (2, 3) ┌──────┬──────┬──────┐ │ foo ┆ bar ┆ ham │ │ --- ┆ --- ┆ --- │ │ i64 ┆ i64 ┆ str │ ╞══════╪══════╪══════╡ │ null ┆ null ┆ null │ │ 0 ┆ 0 ┆ d │ └──────┴──────┴──────┘
DataFrame.remove(
*predicates: IntoExprColumn | Iterable[IntoExprColumn] | bool | list[bool] | np.ndarray[Any,
Any],
**constraints: Any,
) → DataFrame
© 2020 Ritchie Vink
© 2022 Polars contributors
Licensed under the MIT License.
https://docs.pola.rs/api/python/stable/reference/dataframe/api/polars.DataFrame.remove.html