Python如何正确拆分带引号的逗号分隔字符串并实现explode行展开
解决方案
你原来的写法是先删除所有引号再按逗号拆分,自然会把引号内部的逗号也识别成分隔符导致拆分错误。要处理这种符合CSV格式规范的字符串,直接调用Python内置的csv模块解析即可,同时解析效率也比自定义拆分逻辑高很多。
可直接运行的代码示例
import csv from io import StringIO import pandas as pd # 定义单条字符串解析函数 def parse_quoted_str(s): # csv.reader原生支持处理引号包裹的带分隔符字段 reader = csv.reader(StringIO(s), delimiter=',', quotechar='"') return next(reader) # 处理并展开得到结果 df['string_to_parse'] = df['string_to_parse'].apply(parse_quoted_str) result_df = df.explode('string_to_parse', ignore_index=True)
逻辑说明
csv模块的核心解析逻辑是C实现的,比纯Python写的字符串拆分、正则匹配效率高很多,数据量越大性能优势越明显- 自动识别被双引号包裹的字段,不会拆分字段内部的逗号,完全匹配你的需求
- 不需要额外安装第三方依赖,兼容性强
内容的提问来源于stack exchange,提问作者Ilja
相关产品推荐
相关产品推荐

