Как создать новый столбец Polars с уникальным списком всех ненулевых значений в каждой строке?Python

Программы на Python
Anonymous
 Как создать новый столбец Polars с уникальным списком всех ненулевых значений в каждой строке?

Сообщение Anonymous »

У меня есть фрейм данных Polars со 150 столбцами кодов валют. Я могу идентифицировать их с помощью выражения регулярного выражения df.select(pl.col(r'^.*cur$')). Я пытаюсь определить уникальный набор кодов валют в каждой строке. Нулевые значения следует игнорировать.
import polars as pl

df = pl.DataFrame(
{
"col1cur": ["EUR", "EUR", "EUR"],
"col2cur": [None, "EUR", None],
"col3cur": ["EUR", None, None],
"col4cur": ["EUR", "GBP", None],
}
)

В пандах я бы сделал это.
df.to_pandas().apply(
lambda x: pd.Series(x.dropna().unique()).to_list(), axis=1
)

0 [EUR]
1 [EUR, GBP]
2 [EUR]
dtype: object

Как бы я подошел к этому в Polars?
Ожидаемый результат:
┌─────────┬─────────┬─────────┬─────────┬────────────────┐
│ col1cur ┆ col2cur ┆ col3cur ┆ col4cur ┆ target │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ str ┆ str ┆ str ┆ list[str] │
╞═════════╪═════════╪═════════╪═════════╪════════════════╡
│ EUR ┆ null ┆ EUR ┆ EUR ┆ ["EUR"] │
│ EUR ┆ EUR ┆ null ┆ GBP ┆ ["EUR", "GBP"] │
│ EUR ┆ null ┆ null ┆ null ┆ ["EUR"] │
└─────────┴─────────┴─────────┴─────────┴────────────────┘


Подробнее здесь: https://stackoverflow.com/questions/753 ... alues-on-e

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