Как с помощью поляров Python сравнить два кадра данных (например, с помощью ==) и получить результат сравнения для каждой ячейки, но при этом вернуть True/False при сравнении с нулем. По умолчанию выполнение df1 == df2 приводит к тому, что значение null находится во всех ячейках, где df1 или df2 содержит значение null.
Например:
df1 = pl.DataFrame(
{
"a": [1, 2, 3, None, 5],
"b": [5, 4, 3, 2, None],
}
)
df2 = pl.DataFrame(
{
"a": [1, 2, 3, 1, 5],
"b": [5, 4, 30, 2, None],
}
)
print(f"df1: {df1}")
print(f"df2: {df2}")
print(f"df1 == df2: {df1 == df2}")
Результаты:
df1: shape: (5, 2)
┌──────┬──────┐
│ a ┆ b │
│ --- ┆ --- │
│ i64 ┆ i64 │
╞══════╪══════╡
│ 1 ┆ 5 │
│ 2 ┆ 4 │
│ 3 ┆ 3 │
│ null ┆ 2 │
│ 5 ┆ null │
└──────┴──────┘
df2: shape: (5, 2)
┌─────┬──────┐
│ a ┆ b │
│ --- ┆ --- │
│ i64 ┆ i64 │
╞═════╪══════╡
│ 1 ┆ 5 │
│ 2 ┆ 4 │
│ 3 ┆ 30 │
│ 1 ┆ 2 │
│ 5 ┆ null │
└─────┴──────┘
df1 == df2: shape: (5, 2)
┌──────┬───────┐
│ a ┆ b │
│ --- ┆ --- │
│ bool ┆ bool │
╞══════╪═══════╡
│ true ┆ true │
│ true ┆ true │
│ true ┆ false │
│ null ┆ true │
│ true ┆ null │
└──────┴───────┘
Однако я пытаюсь определить, как получить следующий результат:
df1 compared to df2: shape: (5, 2)
┌──────┬───────┐
│ a ┆ b │
│ --- ┆ --- │
│ bool ┆ bool │
╞══════╪═══════╡
│ true ┆ true │
│ true ┆ true │
│ true ┆ false │
│false ┆ true │
Подробнее здесь: https://stackoverflow.com/questions/786 ... le-returni