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

Pandas如何将DataFrame列内嵌套列表字符串拆分为多个独立列

问题原因

你采用的拆分逻辑存在边界遗漏:用]],作为拆分标记时,最后一个分组[[i,j,k,l]]的结尾只有]]没有后续的逗号,不会被拆分逻辑命中,因此最后一列会残留多余的]]。

解决方法

这里提供两种可直接运行的实现方案:

方案1:先清理边界再拆分

先移除整段字符串首尾的两层方括号,再用分组之间的固定分隔符]],[[拆分,最后给每个结果补外层方括号即可:

# 拆分生成多列
split_df = df['A'].str.strip('[]').str.split(r'\]\],\[\[', expand=True).add_prefix('A')
# 为每列内容补全外层方括号
split_df = split_df.apply(lambda col: '[' + col + ']')

方案2:正则提取(更精准)

直接用正则匹配所有符合[x,y,z,w]格式的子串,一步得到目标结果,无需额外处理残留字符:

# 正则匹配所有目标分组,重排为多列
split_df = df['A'].str.extractall(r'(\[[^\]]+\])')[0].unstack().add_prefix('A')

正则规则说明:\[匹配左方括号,[^\]]+匹配所有非右方括号的连续字符,\]匹配右方括号,可精准捕获每一组你需要的列表格式内容。

两种方案对样例输入"[[a,b,c,d]],[[e,f,g,h]],[[i,j,k,l]]"执行后,都可以得到A1、A2、A3三列,对应值分别为[a,b,c,d]、[e,f,g,h]、[i,j,k,l]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 04:15:04