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

Polars中如何将列表列展开为行?解决操作报错问题

解决Polars中列表列展开为行的问题

你的错误在于误用了select结合explode的方式,Polars中要将列表列展开为多行,需要直接调用DataFrame的explode()方法,而非在select语句中嵌套使用。

正确实现方法

直接对目标列表列调用explode()方法即可,其他列会自动重复对应到展开后的每一行:

# 展开mpg_by_cyl列为多行
pl_mtcars2.explode('mpg_by_cyl').head(10)

为什么你的代码报错?

  1. 你在select中同时使用pl.all()和pl.exclude('mpg_by_cyl'),会导致其他列被重复选中,引发列名冲突
  2. pl.col('mpg_by_cyl').explode()在select中使用时,仅会将列表列的元素转为同长度的列,但不会新增行;当列表长度与原行长度不匹配时就会报错。而DataFrame级别的explode()方法才是专门用来将列表列的每个元素拆分为独立行的API。

补充说明

如果需要同时对多个列表列展开,可以传入列名列表:

# 多列展开示例(若存在多个列表列)
# pl_mtcars2.explode(['col1', 'col2'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 17:53:11