Как использовать функцию, возвращающую кортеж, для добавления нескольких столбцов во фрейм данных в Polars [дубликат]Python

Программы на Python
Ответить
Anonymous
 Как использовать функцию, возвращающую кортеж, для добавления нескольких столбцов во фрейм данных в Polars [дубликат]

Сообщение Anonymous »

У меня есть фрейм данных с одним столбцом:
df = pl.DataFrame({
'a':[1,2,3,4]
})

shape: (4, 1)
┌─────┐
│ a │
│ --- │
│ i64 │
╞═════╡
│ 1 │
│ 2 │
│ 3 │
│ 4 │
└─────┘

И функция от int до (int, int):
def f(i): return (i*10, i*100)

Я хочу использовать f, чтобы добавить 2 столбца b,c во фрейм данных. В процессе я хочу явно установить тип данных для этих двух столбцов (на самом деле это не целые числа, это может быть структура Polars, массив и т. д.)
Я пробовал:
df.with_columns(pl.col('a').map_elements(f).alias('temp'))

Но в целом заставить это работать не удается, поскольку f возвращает кортеж сложных типов данных.
┌─────┬───────────┐
│ a ┆ temp │
│ --- ┆ --- │
│ i64 ┆ object │
╞═════╪═══════════╡
│ 1 ┆ (10, 100) │
│ 2 ┆ (20, 200) │
│ 3 ┆ (30, 300) │
│ 4 ┆ (40, 400) │
└─────┴───────────┘

Желаемый результат:
shape: (4, 3)
┌─────┬─────┬─────┐
│ a ┆ b ┆ c │
│ --- ┆ --- ┆ --- │
│ i64 ┆ i64 ┆ i64 │
╞═════╪═════╪═════╡
│ 1 ┆ 10 ┆ 100 │
│ 2 ┆ 20 ┆ 200 │
│ 3 ┆ 30 ┆ 300 │
│ 4 ┆ 40 ┆ 400 │
└─────┴─────┴─────┘


Подробнее здесь: https://stackoverflow.com/questions/767 ... a-frame-in
Ответить

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

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

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

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

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