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

如何将Polars数据框中的字符串列拆分为嵌套列表?

如何将Polars数据框中的字符串列拆分为嵌套列表?

嘿,我来帮你搞定这个问题!先看你的示例数据,这个DataFrame里的test列其实是一行包含换行分隔的长字符串,咱们分两步操作就能把它转成嵌套列表的形式:

第一步:拆分换行,把长字符串拆成独立行

先用str.split_explode()方法,以换行符\n为分隔符,把原来的单行数据拆成单独的行,这样每一行就是一组逗号分隔的字符串:

import polars as pl

pl.Config(fmt_table_cell_list_len=6, fmt_str_lengths=100)
df = pl.DataFrame({'test': "A,B,C,1\nD,E,F,2\nG,H,I,3\nJ,K,L,4"})

# 拆分换行
df = df.with_columns(pl.col("test").str.split_explode("\n"))

这一步执行后,DataFrame会变成这样:

shape: (4, 1)
┌─────────┐
│ test    │
│ ---     │
│ str     │
╞═════════╡
│ A,B,C,1 │
│ D,E,F,2 │
│ G,H,I,3 │
│ J,K,L,4 │
└─────────┘

第二步:拆分逗号,把每行字符串转成列表

接着用str.split()方法,把每行的字符串按逗号,拆分,这样就得到每个元素都是列表的列,也就是你想要的嵌套列表结构:

# 拆分逗号为列表
df = df.with_columns(pl.col("test").str.split(","))

最终的DataFrame结果如下:

shape: (4, 1)
┌─────────────────┐
│ test            │
│ ---             │
│ list[str]       │
╞═════════════════╡
│ ["A", "B", "C", "1"] │
│ ["D", "E", "F", "2"] │
│ ["G", "H", "I", "3"] │
│ ["J", "K", "L", "4"] │
└─────────────────┘

如果你想直接提取成Python原生的“列表的列表”,只需要执行df["test"].to_list(),就能得到:

[['A', 'B', 'C', '1'], ['D', 'E', 'F', '2'], ['G', 'H', 'I', '3'], ['J', 'K', 'L', '4']]

另外,你也可以把两步合并成一行表达式,更简洁:

df = df.with_columns(pl.col("test").str.split("\n").explode().str.split(","))

这样就完美解决你的需求啦!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 12:18:00