Получить список имен столбцов со значениями > 0 для каждой строки в полярах. ⇐ Python
Получить список имен столбцов со значениями > 0 для каждой строки в полярах.
Я хочу добавить столбец result в полярный DataFrame, который содержит список имен столбцов со значением больше нуля в этой позиции.
Итак, учитывая следующее:
импортировать поляры как pl df = pl.DataFrame({"яблоко": [1, 0, 2, 0], "банан": [1, 0, 0, 1]}) cols = ["яблоко", "банан"] Как мне получить:
форма: (4, 3) ┌───────┬────────┬─────────────────────┐ │ яблоко ┆ банан ┆ результат │ │ --- ┆ --- ┆ --- │ │ i64 ┆ i64 ┆ список[строка] │ ╞═══════╪════════╪═════════════════════╡ │ 1 ┆ 1 ┆ ["яблоко", "банан"] │ │ 0 ┆ 0 ┆ [] │ │ 2 ┆ 0 ┆ ["яблоко"] │ │ 0 ┆ 1 ┆ ["банан"] │ └────────┴────────┴─────────────────────┘ Все, что у меня пока есть, это истинностные значения:
df.with_columns(pl.concat_list(pl.col(cols).gt(0)).alias("результат")) форма: (4, 3) ┌────────┬────────┬─────────────────┐ │ яблоко ┆ банан ┆ результат │ │ --- ┆ --- ┆ --- │ │ i64 ┆ i64 ┆ список[bool] │ ╞═══════╪════════╪════════════════╡ │ 1 ┆ 1 ┆ [правда, правда] │ │ 0 ┆ 0 ┆ [ложь, ложь] │ │ 2 ┆ 0 ┆ [правда, ложь] │ │ 0 ┆ 1 ┆ [ложь, правда] │ └────────┴────────┴────────────────┘
Я хочу добавить столбец result в полярный DataFrame, который содержит список имен столбцов со значением больше нуля в этой позиции.
Итак, учитывая следующее:
импортировать поляры как pl df = pl.DataFrame({"яблоко": [1, 0, 2, 0], "банан": [1, 0, 0, 1]}) cols = ["яблоко", "банан"] Как мне получить:
форма: (4, 3) ┌───────┬────────┬─────────────────────┐ │ яблоко ┆ банан ┆ результат │ │ --- ┆ --- ┆ --- │ │ i64 ┆ i64 ┆ список[строка] │ ╞═══════╪════════╪═════════════════════╡ │ 1 ┆ 1 ┆ ["яблоко", "банан"] │ │ 0 ┆ 0 ┆ [] │ │ 2 ┆ 0 ┆ ["яблоко"] │ │ 0 ┆ 1 ┆ ["банан"] │ └────────┴────────┴─────────────────────┘ Все, что у меня пока есть, это истинностные значения:
df.with_columns(pl.concat_list(pl.col(cols).gt(0)).alias("результат")) форма: (4, 3) ┌────────┬────────┬─────────────────┐ │ яблоко ┆ банан ┆ результат │ │ --- ┆ --- ┆ --- │ │ i64 ┆ i64 ┆ список[bool] │ ╞═══════╪════════╪════════════════╡ │ 1 ┆ 1 ┆ [правда, правда] │ │ 0 ┆ 0 ┆ [ложь, ложь] │ │ 2 ┆ 0 ┆ [правда, ложь] │ │ 0 ┆ 1 ┆ [ложь, правда] │ └────────┴────────┴────────────────┘