如何在Python Polars中对DataFrame列表列执行explode操作?
Polars DataFrame列表列的展开(Explode)操作方法
Polars 提供了原生的 explode() 方法,可直接实现列表列的展开需求,以下是具体用法:
基础用法
先构造一个带列表列的示例 DataFrame:
import polars as pl df = pl.DataFrame({ "id": [1, 2], "values": [[10, 20, 30], [40, 50]] })
对目标列表列执行展开操作:
exploded_df = df.explode("values")
执行后,values 列的每个列表元素会单独占据一行,同时保留其他列的对应值,完全符合需求效果。
多列表列同时展开
如果 DataFrame 中有多个列表列需要同时展开,只需将列名以列表形式传入 explode():
df = pl.DataFrame({ "id": [1, 2], "vals1": [[1,2], [3,4]], "vals2": [[5,6], [7,8]] }) exploded_df = df.explode(["vals1", "vals2"])
此操作会将多个列表列的同位置元素对应到同一行。
保留原索引信息
若需要保留原 DataFrame 的行索引,可先添加索引列再执行展开:
# 先添加原索引列 df_with_idx = df.with_row_index("original_index") # 执行展开 exploded_df = df_with_idx.explode("values")
这样展开后的结果会保留原始行的索引标识。
内容的提问来源于stack exchange,提问作者myamulla_ciencia
相关产品推荐
相关产品推荐

