Упростите цепочку предикатов фильтра «ИЛИ», используя расширение выражения Polars.Python

Программы на Python
Ответить
Anonymous
 Упростите цепочку предикатов фильтра «ИЛИ», используя расширение выражения Polars.

Сообщение Anonymous »

Можно ли преобразовать следующий фильтр, использующий два условия, во что-то, использующее расширение выражения или пользовательскую функцию, чтобы применить принцип DRY (избегать повторения)?

Вот пример:
import polars as pl

df = pl.DataFrame(
{
"a": [1, 2, 3, 4, 5],
"val1": [1, None, 0, 0, None],
"val2": [1, None, None, 0, 1],
}
)

df.filter((~pl.col("val1").is_in([None, 0])) | (~pl.col("val2").is_in([None, 0])))

Результаты:
┌─────┬──────┬──────┐
│ a ┆ val1 ┆ val2 │
│ --- ┆ --- ┆ --- │
│ i64 ┆ i64 ┆ i64 │
╞═════╪══════╪══════╡
│ 1 ┆ 1 ┆ 1 │
│ 5 ┆ null ┆ 1 │
└─────┴──────┴──────┘


Подробнее здесь: https://stackoverflow.com/questions/793 ... -expansion
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»