Создайте новый столбец Polars, частично основанный на именах других столбцов.Python

Программы на Python
Ответить
Anonymous
 Создайте новый столбец Polars, частично основанный на именах других столбцов.

Сообщение Anonymous »

Я новичок как в Polars, так и в Python в целом. У меня несколько необычная проблема, с которой мне нужна помощь. У меня есть фрейм данных с более чем 50 столбцами, равными 0/1. Мне нужно создать новый столбец, содержащий список, разделенный запятыми, для каждого столбца, содержащего 1, но используя часть имени столбца. Если hccx = 1, добавьте x в строковый столбец. Упрощенный пример:

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

import polars as pl

df = pl.from_repr("""
┌─────┬──────┬──────┬──────┬──────┐
│ id  ┆ hcc1 ┆ hcc2 ┆ hcc5 ┆ hcc8 │
│ --- ┆ ---  ┆ ---  ┆ ---  ┆ ---  │
│ i64 ┆ i64  ┆ i64  ┆ i64  ┆ i64  │
╞═════╪══════╪══════╪══════╪══════╡
│ 1   ┆ 0    ┆ 0    ┆ 0    ┆ 1    │
│ 2   ┆ 1    ┆ 0    ┆ 1    ┆ 0    │
│ 3   ┆ 1    ┆ 1    ┆ 1    ┆ 0    │
└─────┴──────┴──────┴──────┴──────┘
""")
Я хочу создать новый столбец (строкового типа) hccall, который выглядит следующим образом:

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

shape: (3, 2)
┌─────┬────────┐
│ id  ┆ hccall │
│ --- ┆ ---    │
│ i64 ┆ str    │
╞═════╪════════╡
│ 1   ┆ 8      │
│ 2   ┆ 1,5    │
│ 3   ┆ 1,2,5  │
└─────┴────────┘
Я предполагаю, что какой-то тип понимания списка, циклически обрабатывающий столбцы, начинающиеся с «hcc», будет работать, но я как бы застрял. Я могу создать цикл, но не знаю, как добавить его к столбцу из цикла. Есть интересные идеи?

Подробнее здесь: https://stackoverflow.com/questions/769 ... lumn-names
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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