如何用Pandas正确导入带双引号的特殊分隔符CSV并去除引号?
解决CSV文件导入及双引号去除问题
方法1:读取后批量去除双引号
如果已经能正确拆分列但值保留双引号,可在读取完成后用applymap批量处理字符串类型元素,去除首尾双引号:
import pandas as pd # 按正确分隔符读取文件 df = pd.read_csv('file.csv', sep=',\0', engine='python') # 仅对字符串类型值去除双引号 df = df.applymap(lambda x: x.strip('"') if isinstance(x, str) else x)
方法2:读取阶段直接解析引号
明确指定引号字符和引用规则,让pandas在读取时自动识别并去除双引号:
import pandas as pd import csv df = pd.read_csv( 'file.csv', sep=',\0', engine='python', quotechar='"', # 指定双引号为字段引用符 quoting=csv.QUOTE_ALL # 声明所有字段均被引号包裹 )
若分隔符识别仍有问题,可尝试用sep=r',\x00'替代,\0(二者均匹配逗号加空字节,部分环境下转义写法要求不同)。
额外排查建议
- 用文本编辑器(如Notepad++的「显示所有字符」功能)确认文件实际分隔符,避免误判;
- 若列标题也带双引号,读取时添加
header=0确保首行被识别为列名,再用上述方法统一处理。
内容的提问来源于stack exchange,提问作者hoomant
相关产品推荐
相关产品推荐

