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

如何将Polars DataFrame的列表列展开为多行(Unnest操作)

解决Polars列表列展开问题

你遇到的unnest报错是因为这个方法专门用于struct类型列,而你的b列是列表类型,所以不适用。要实现列表列的行展开,直接用Polars的explode方法就行:

import polars as pl

df = pl.DataFrame({'a':[1,2,3], 'b':[['a','b'],['a'],['c','d']]})
result_df = df.explode('b')
print(result_df)

执行后输出就是你想要的格式:

┌─────┬─────┐
│ a   ┆ b   │
│ --- ┆ --- │
│ i64 ┆ str │
╞═════╪═════╡
│ 1   ┆ "a" │
│ 1   ┆ "b" │
│ 2   ┆ "a" │
│ 3   ┆ "c" │
│ 3   ┆ "d" │
└─────┴─────┘

如果需要同时展开多个列表列,直接把列名放进列表传入explode即可,比如df.explode(['b', 'c']);另外explode默认会保留原列表为空的行,要是想忽略空列表的行,可以加参数ignore_nulls=True。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 05:45:33