Python Polars не может преобразовать столбец f64 в str и агрегировать в списокPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python Polars не может преобразовать столбец f64 в str и агрегировать в список

Сообщение Anonymous »

Работа с фреймом данных типа:

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

df = pl.DataFrame({
'order': [38681.0, 38692.0, 38680.0, 38693.0],
'shipto': ["471433", "239269", "471433","239269"],
'value': [10,20,30,None]
})
Необходимо сгруппировать по столбцу «Доставка», суммировать «значения» и объединить «заказ» в список. Пробовал несколько вещей, но ничего не получилось.
Базовый скрипт:

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

df = (df
.with_columns([
pl.col('order').cast(pl.Utf8),
pl.col(pl.Float64).fill_null(0)
])
.groupby('shipto')
.agg([
pl.col('order').apply(lambda x: str(x)).alias('order_list'),
pl.sum('value')
])
)
Возвраты:




доставка
список_заказов
значение




str
str
i64


471433
форма: ( 2,)
40



< td>Серия: '' [f64]




[



...



239269
форма: (2,)
20


< td>
Серия: '' [f64]




[



...





Я надеюсь получить в столбце «order_list» либо ([38681.0,38680.0],[38692.0,38693.0] ) или (['38681.0','38680.0'],['38692.0','38693.0'])
Я предполагаю, что столбец "заказ" необходимо преобразовать из значений f64 в строка (Utf8), но не могу заставить ее работать.
Вариации строки 'pl.col('order').cast(pl.Utf8), #.cast (pl.Float64)», которые я пробовал до сих пор:

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

pl.col('order').cast(pl.Float64).cast(pl.Utf8),

pl.col('order').cast(pl.Int64).cast(pl.Utf8),

pl.col('order').map(lambda x: str(x)),

pl.col('order').apply(lambda x: str(int(x))),

pl
.when(pl.col('order').is_null())
.then(pl.lit(''))
.otherwise(pl.col('order').cast(pl.Float64).cast(pl.Utf8)).alias('order'),
Конечно, есть какая-то базовая ошибка, но мы будем очень признательны за продолжение борьбы с ней и за любую помощь.

Подробнее здесь: https://stackoverflow.com/questions/756 ... te-to-list
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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