Pandas写入CSV时无法保留带引号的空格内容问题
解决Pandas写入CSV时丢失带引号空格的问题
问题根源
你读取CSV时用了skipinitialspace=True,虽然能正确识别带逗号的引号字段,但写入时Pandas默认仅给包含分隔符、换行符等特殊字符的字段加引号。单个空格不属于特殊字符,因此原数据里的" "会被写成 ,,丢失外层引号。
解决方案
通过指定写入时的引号规则,让非数值字段强制被引号包裹,包括单个空格的字段。
步骤1:导入必要模块
import pandas as pd import csv
步骤2:调整读取代码(可选)
如果不需要跳过字段开头的空格,可去掉skipinitialspace=True,避免意外处理引号内的空格:
f = pd.read_csv(mypath + file, quotechar='"')
若需保留skipinitialspace=True处理其他字段,可继续使用原读取代码:
f = pd.read_csv(mypath + file, skipinitialspace=True, quotechar='"')
步骤3:修改写入代码
添加quoting=csv.QUOTE_NONNUMERIC参数,让所有非数值字段自动加引号:
f.to_csv(mypath + file, index=False, quoting=csv.QUOTE_NONNUMERIC, quotechar='"')
效果验证
修改后写入的CSV会保留原格式:
Column 1,Column 2,Column 3,Column 4 123," ",ABCD,"This, that, and this"
内容的提问来源于stack exchange,提问作者ArrogantCoder
相关产品推荐
相关产品推荐

