使用pandas read_csv解析含双引号内逗号的CSV时遇解析错误
解决pandas read_csv解析带引号CSV的字段数错误问题
你的问题根源在于CSV里分隔符逗号与引号之间的空格,以及pandas默认参数的配置逻辑。
先看你的CSV内容:
Issue, Content Test, "A, B" Test, "A, B, C"
注意每一行逗号后都带有空格,而pandas默认skipinitialspace=False,不会忽略分隔符后的空格。这会导致解析器错误地把 "A"拆成一个独立字段, B"拆成第二个字段,第二行因此被解析为3个字段;到第三行时, "A"、 B、 C"被拆成3个额外字段,加上Test就变成4个,和之前识别的3个字段数不符,触发ParserError。
解决方法
方法1:修改read_csv参数
在调用时添加skipinitialspace=True,让pandas忽略分隔符后的空格,正确识别引号包裹的含逗号内容:
df = pd.read_csv('data.csv', delimiter=",", quotechar='"', encoding="utf-8", skipinitialspace=True)
方法2:修正CSV格式
直接去掉逗号与引号之间的空格,让引号紧跟分隔符:
Issue,Content Test,"A, B" Test,"A, B, C"
修改后用你原来的代码即可正常解析。
内容的提问来源于stack exchange,提问作者Pete
相关产品推荐
相关产品推荐

