Фильтровать список, используя другой список в качестве логической маски в полярахPython

Программы на Python
Anonymous
 Фильтровать список, используя другой список в качестве логической маски в полярах

Сообщение Anonymous »

У меня есть фрейм данных Polars, содержащий два столбца, оба столбца являются списками.

Код: Выделить всё

import polars as pl

df = pl.DataFrame({
'a': [[True, False], [False, True]],
'b': [['name1', 'name2'], ['name3', 'name4']]
})

Код: Выделить всё

shape: (2, 2)
┌───────────────┬────────────────────┐
│ a             ┆ b                  │
│ ---           ┆ ---                │
│ list[bool]    ┆ list[str]          │
╞═══════════════╪════════════════════╡
│ [true, false] ┆ ["name1", "name2"] │
│ [false, true] ┆ ["name3", "name4"] │
└───────────────┴────────────────────┘
Я хочу отфильтровать столбец b, используя столбец a в качестве логической маски. Длина каждого списка в столбце a всегда такая же, как длина каждого списка в столбце b.
Я могу подумать об использовании разнесения, затем фильтрации, агрегирования и выполнения соединения, но в некоторых случаях столбец соединения недоступен, и я бы предпочел избегать этого метода из соображений простоты.
Есть ли другие способы фильтровать список с использованием другого список как логическую маску? Я пробовал использовать .list.eval, но, похоже, он не принимает операции с другими столбцами.
Буду признателен за любую помощь!

Подробнее здесь: https://stackoverflow.com/questions/724 ... -in-polars

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