如何将列表的列表导入Polars并拆分为独立列?
解决Polars导入列表的列表拆分列问题
Polars默认采用列优先的构造逻辑,直接使用pl.DataFrame(numbers)会把每个子列表当作一列数据,和Pandas的行优先默认行为不同,因此达不到预期效果。你可以通过以下两种方法解决:
方法1:指定orient="row"参数(推荐)
明确告诉Polars按行解析数据,和Pandas默认行为对齐:
import polars as pl numbers = [['304-144635', 0], ['123-091523', 7], ['305-144931', 12], ['623-101523', 16], ['305-145001', 22], ['623-111523', 27], ['9998-2603', 29]] # 按行构造DataFrame,自动拆分为独立列 df = pl.DataFrame(numbers, orient="row") print(df)
如果需要自定义列名,直接添加schema参数即可:
df = pl.DataFrame(numbers, orient="row", schema=["编号", "数值"])
方法2:转置列表后传入
利用zip(*numbers)将原列表转置,适配Polars的列优先逻辑:
df = pl.DataFrame(list(zip(*numbers)))
两种方法最终都会生成包含两列的DataFrame,每行对应原列表中的子列表元素。
内容的提问来源于stack exchange,提问作者diogenes
相关产品推荐
相关产品推荐

