Фильтровать поляры DataFrame на основе того, когда строки, конкретные столбцы которых содержат пары из списка парPython

Программы на Python
Anonymous
 Фильтровать поляры DataFrame на основе того, когда строки, конкретные столбцы которых содержат пары из списка пар

Сообщение Anonymous »

В этом примере из столбцов ["foo", "ham"] я хочу удалить строки 1 и 4, поскольку они соответствуют паре в списке

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

df = pl.DataFrame(
{
"foo": [1, 1, 2, 2, 3, 3, 4],
"bar": [6, 7, 8, 9, 10, 11, 12],
"ham": ["a", "b", "c", "d", "e", "f", "b"]
}
)
pairs = [(1,"b"),(3,"e"),(4,"g")]
У меня сработало следующее, но я думаю, что это будет проблематично, если кадр данных и список пар велики.

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

for a, b in pairs:
df = df.filter(~(pl.col('foo') == a) | ~(pl.col('ham') == b))
Я думаю, что это реализация Pandas для этой проблемы. Pandas: Как удалить строки из кадра данных на основе списка кортежей, представляющих значения в ДВУХ столбцах?
Я не уверен, какова ее реализация в Polars.
(Я думаю, что эту проблему можно обобщить на любое количество выбранных столбцов и любое количество элементов в группе. Для экземпляр, а не список пар, это может быть другой кадр данных. Вы получаете «установленную разницу» в виде строк между двумя кадрами данных на основе определенных столбцов.)

Подробнее здесь: https://stackoverflow.com/questions/755 ... tain-pairs

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