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

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

Сообщение Anonymous »

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

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

import polars as pl

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
Ответить

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

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

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

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

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