Как сжать 2 столбца списка в Python Polars?Python

Программы на Python
Ответить
Anonymous
 Как сжать 2 столбца списка в Python Polars?

Сообщение Anonymous »

У меня есть фрейм данных со столбцами A, B и C, где B и C — столбцы списка.

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

df = pl.DataFrame({
'A': ['t', 'u', 'v'],
'B': [['a', 'v', 'x'], ['f', 'g', 'h'], ['p', 'o', 'i']],
'C': [[11, 12, 14], [41, 42, 43], [66, 77, 88]]
})
Мне нужно объединить следующее:

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

Original:
┌─────┬─────────────────┬──────────────┐
│ A   ┆ B               ┆ C            │
│ --- ┆ ---             ┆ ---          │
│ i64 ┆ list[str]       ┆ list[i64]    │
╞═════╪═════════════════╪══════════════╡
│ t   ┆ ["a", "v", "x"] ┆ [11, 12, 14] │
│ u   ┆ ["f", "g", "h"] ┆ [41, 42, 43] │
│ v   ┆ ["p", "o", "i"] ┆ [66, 77, 88] │
└─────┴─────────────────┴──────────────┘

Final:
┌─────┬─────────────────────────────────────┐
│ A   ┆ zip(B,C)                            │
│ --- ┆ ---                                 │
│ i64 ┆ object(?)                           │
╞═════╪═════════════════════════════════════╡
│ t   ┆ [('a', 11), ('v', 12), ('x', 14) ]  │
│ u   ┆ [('f', 41), ('g', 42), ('h', 43) ]  │
│ v   ┆ [('p', 66), ('o', 77), ('i', 88) ]  │
└─────┴─────────────────────────────────────┘
Используя только Python, я бы использовал zip(), но этот подход не масштабируется.
Я думал об использовании Explosion() в списки, затем преобразовать их в строку и объединить результаты с помощью разделителя, но это кажется неправильным, и у меня возникнут проблемы с сохранением правильности связи данных в столбце A с развернутым результатом.
Есть ли другой способ добиться этого результата?

Подробнее здесь: https://stackoverflow.com/questions/745 ... hon-polars
Ответить

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

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

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

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

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