从元组列表加载pl.DataFrame失败,如何修复?
解决方法
直接移除代码中的orient='row'参数即可,修改后的代码如下:
import polars as pl import uuid import datetime from enum import Enum class Fruit(Enum): BANANA = 'BANANA' data = [ (1, uuid.UUID('some-uuid'), None, datetime.datetime(2023, 2, 3, 6, 18, 11), None, 24040228, None, 0.0625, False, Fruit.BANANA, None), ] pl.DataFrame(data)
原因说明
Polars中,当输入数据是元组列表(每个元组代表一行的所有字段)时,默认会自动将每个元组拆解为一行,元组内的每个元素对应一列。而你指定的orient='row'参数,会让Polars将整个元组视为单一列的元素,这就导致了所有值被塞进同一列的问题。
如果需要显式指定行模式,也可以用orient='records',但对于元组列表的场景,默认行为已经完全符合需求,无需额外参数。
修改后运行会得到shape: (1, 11)的DataFrame,每个值对应单独一列。
内容的提问来源于stack exchange,提问作者zacko
相关产品推荐
相关产品推荐

