Я хотел создать столбец is_null, в котором указано, будет ли первый столбец значения столбца были нулевыми или нет (по элементам).
Я столкнулся с методом .map_elements, но он «пропустил» нулевые значения. Вот пример:
Код: Выделить всё
import polars as pl
df = pl.DataFrame({"foo": [1, None, 3], "bar": [-1, None, 8]})
# shape: (3, 2)
# ┌──────┬──────┐
# │ foo ┆ bar │
# │ --- ┆ --- │
# │ i64 ┆ i64 │
# ╞══════╪══════╡
# │ 1 ┆ -1 │
# │ null ┆ null │
# │ 3 ┆ 8 │
# └──────┴──────┘
def print_and_fill(value):
print("Value is", value)
return 1
df["foo"].map_elements(print_and_fill)
## Output ##
# Value is 1
# Value is 3
# shape: (3,)
# Series: 'bar' [i64]
# [
# 1
# null
# 1
# ]
Я нашел обходной путь: мы можем временно .fill_null(), а затем вызвать .map_elements(), но это явно не лучшее решение.
Подробнее здесь: https://stackoverflow.com/questions/739 ... ding-nulls