You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Pandas转Polars:Django查询结果转Polars DataFrame失败问题

Django查询结果导入Polars与Pandas的差异及解决方法

核心差异原因

Pandas的DataFrame构造器可以直接迭代Django的ValuesQuerySet(values()返回的对象),自动将每个字典元素的键解析为列名,值对应列数据。但Polars的默认DataFrame构造器不会自动处理这种字典迭代器,它会把整个QuerySet当成单列数据,每个元素是完整字典,导致无法正确展开成多列结构。

解决方法

方法1:将QuerySet转为列表后传入Polars

把ValuesQuerySet转成列表,Polars就能正确识别字典的键值对并生成对应列:

cf = Cashflow.objects.filter(acct=acct).values()
df = pl.DataFrame(list(cf))

方法2:使用Polars的from_dicts方法

Polars专门提供了from_dicts方法来处理字典迭代器,直接传入QuerySet即可:

cf = Cashflow.objects.filter(acct=acct).values()
df = pl.from_dicts(cf)

总结差异点

  • Pandas对字典迭代器的兼容性更强,构造器会自动解析结构
  • Polars需要显式处理字典迭代器,要么转成列表,要么用专门的from_dicts方法

内容的提问来源于stack exchange,提问作者diogenes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 12:39:56