使用pandas read_csv读取CSV时每行首尾出现引号,如何正确解析?
正确解析含嵌套引号的CSV文件(Pandas实现)
问题场景
你的CSV文件中存在字段包含未转义双引号的情况(如第三行的"This a "TEXT". However, I cannot parse it."),此前手动指定sep="\",\""并使用python引擎的方式会导致列解析错误,每行首尾残留引号。
解决方法
无需手动指定分隔符,通过配置Pandasread_csv()的引号处理参数即可正确解析:
import pandas as pd import csv df = pd.read_csv( 'test.csv', engine='python', quotechar='"', # 指定字段的包裹符号为双引号 escapechar='"', # 指定用双引号转义字段内的双引号 quoting=csv.QUOTE_ALL # 识别所有被双引号包裹的字段 )
参数说明
quotechar='"':告诉Pandas每个字段是被双引号包裹的escapechar='"':表示字段内部的双引号是用来转义自身的,解析时会保留单个双引号quoting=csv.QUOTE_ALL:强制识别所有被双引号包裹的内容为完整字段值
执行后即可得到正确的DataFrame:
col1 col2 0 1 text1 1 2 This a "TEXT". However, I cannot parse it.
内容的提问来源于stack exchange,提问作者Ani
相关产品推荐
相关产品推荐

