Список int и float в приведении Python Polars к объектуPython

Программы на Python
Anonymous
 Список int и float в приведении Python Polars к объекту

Сообщение Anonymous »

Почему столбец является плавающим в следующем примере, который приводит к объекту вместо списка[f64]? Как изменить его на list[f64]?
import polars as pl

dfLists = pl.DataFrame({
'ints':[ [0,1], [4,3,2]],
'floats':[ [0.0,1], [2,3]],
'strings':[ ["0","1"],["2","3"]]
})
dfLists

shape: (2, 3)
┌───────────┬──────────┬────────────┐
│ ints ┆ floats ┆ strings │
│ --- ┆ --- ┆ --- │
│ list[i64] ┆ object ┆ list[str] │
╞═══════════╪══════════╪════════════╡
│ [0, 1] ┆ [0.0, 1] ┆ ["0", "1"] │
│ [4, 3, 2] ┆ [2, 3] ┆ ["2", "3"] │
└───────────┴──────────┴────────────┘

Примечание: кажется, что это поведение может быть новым, судя по этому сообщению в блоге (.html), где тот же пример приводит к списку[f64].
Изменить: после обновления поляров до версии 0.17.2 столбец приводит к списку[f64], как и ожидалось.
I все равно хотелось бы знать, можно ли изменить типы элементов списка. Например, адаптируя предыдущий пример:
import polars as pl

dfLists = pl.DataFrame({
'ints':[ [0,1], [4,3,2]],
'object':[ [0,"1"], [2,3]],
'strings':[ ["0","1"],["2","3"]]
})

dfLists.select(pl.col("strings").list.eval(pl.element().cast(pl.Int16)))
# works

dfLists.select(pl.col("object").list.eval(pl.element().cast(pl.Int16))) # error
# error:
# PanicException: not implemented for dtype Object("object")


Подробнее здесь: https://stackoverflow.com/questions/759 ... -to-object

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