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

Pandas如何高效拆分大括号内逗号分隔元素并展开为多行

高效拆分大括号格式字段并爆炸为独立行的方案

你之前的实现运行失败、效率极低,核心原因是str.split(expand=True)+stack的逻辑会按照最长拆分长度生成冗余宽表,带来大量无意义的内存开销,同时没有兼容空字符串、空大括号的边界场景。

直接使用pandas原生矢量化操作即可实现需求,全程走底层C级运算,无Python层循环,1万行数据处理耗时通常在10毫秒以内:

import pandas as pd

# 原始数据
df = pd.DataFrame({'A': ['a', 'b', 'x', 'y'], 
                   'B': ['{c,d}', '{e,f,g}', '', '{}']})

# 1. 批量移除B列首尾的大括号
df['B'] = df['B'].str.strip('{}')
# 2. 按逗号拆分字符串为列表,空字符串拆分后自动得到[''],匹配保留空行的需求
df['B'] = df['B'].str.split(',')
# 3. 直接对拆分后的列执行爆炸操作,重置索引
df = df.explode('B', ignore_index=True)

执行后得到的结果和预期结构完全一致:

A  B
0  a  c
1  a  d
2  b  e
3  b  f
4  b  g
5  x   
6  y   

注意事项

  • 如果你的pandas版本低于1.3.0,explode方法不支持ignore_index参数,把最后一行替换为df = df.explode('B').reset_index(drop=True)即可。
  • 如果B列存在缺失值NaN,可以在移除大括号前加一句df['B'] = df['B'].fillna('{}'),避免拆分时报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 06:45:41