Левое соединение Polars Lazyframe и фильтр ~is_in не работают должным образомPython

Программы на Python
Ответить
Anonymous
 Левое соединение Polars Lazyframe и фильтр ~is_in не работают должным образом

Сообщение Anonymous »

Когда я использую lazyframe и левое соединение вместе с фильтром ~is_in, вместо удаления строк создаются значения NULL. Это происходит в ленивом фрейме, но не в активном

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

pl_df = pl.DataFrame({
"group":["A","B","C","D","E","F"],
"values": [1,2,None,4,5,6],
"values1":[1,2,None,4,5,6],
"values2":[1,2,None,4,5,6]
})

pl_df2 = pl_df.lazy()
pl_df3=(
pl_df2.select(pl.exclude("group"))
.join(pl_df.lazy(),
left_on="values",right_on="values2",how="left")
)

a = pl_df3.collect().shape

b = pl_df3.filter(~pl.col("group").is_in(["D","E","F"])).collect().shape
Ожидается, что строк b будет меньше, чем количество строк в a. Но выходные данные показывают одинаковое количество строк как для a, так и для b

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

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

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

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

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

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