Concat_list со значениями NULL, или как заполнить NULL в pl.List[str]Python

Программы на Python
Anonymous
 Concat_list со значениями NULL, или как заполнить NULL в pl.List[str]

Сообщение Anonymous »

Я хочу объединить три столбца списка в pl.LazyFrame. Однако списки часто содержат значения NULL. Результат NULL для pl.concat_list
MRE

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

import polars as pl

# Create the data with some NULLs
data = {
"a": [["apple", "banana"], None, ["cherry"]],
"b": [None, ["dog", "elephant"], ["fish"]],
"c": [["grape"], ["honeydew"], None],
}

# Create a LazyFrame
lazy_df = pl.LazyFrame(data)
list_cols = ["a", "b", "c"]
print(lazy_df.with_columns(pl.concat_list(pl.col(list_cols)).alias("merge")).collect())

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

┌─────────────────────┬─────────────────────┬──────────────┬───────────┐
│ a                   ┆ b                   ┆ c            ┆ merge     │
│ ---                 ┆ ---                 ┆ ---          ┆ ---       │
│ list[str]           ┆ list[str]           ┆ list[str]    ┆ list[str] │
╞═════════════════════╪═════════════════════╪══════════════╪═══════════╡
│ ["apple", "banana"] ┆ null                ┆ ["grape"]    ┆ null      │
│ null                ┆ ["dog", "elephant"] ┆ ["honeydew"] ┆ null      │
│ ["cherry"]          ┆ ["fish"]            ┆ null         ┆ null      │
└─────────────────────┴─────────────────────┴──────────────┴───────────┘
Вопрос
Как объединить списки, даже если некоторые значения равны NULL?
Проверенные решения
Я пытался заполнить нулевые значения с помощью expr.fill_null("") или expr.fill_null(pl.List("")) или expr.fill_null(pl.List([])), но не смог его запустить. Как заполнить пустой список вместо NULL в столбцах типа pl.List[str]. И есть ли лучший способ объединить три столбца списка?

Подробнее здесь: https://stackoverflow.com/questions/790 ... pl-liststr

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