使用pandas的to_csv导出CSV时如何为所有字段添加文本限定符
解决方法
你当前配置未生效的核心原因是缺少quoting参数配置,且quotechar使用了HTML转义字符而非原生双引号,修正方案如下:
1. 导入依赖的csv模块
pandas的引号规则常量定义在Python标准库csv模块中,需要先导入:
import csv import datetime import pandas as pd
2. 修正to_csv参数
新增quoting=csv.QUOTE_ALL配置,该参数会强制给所有字段值包裹指定的文本限定符,同时把quotechar改为原生双引号即可:
df.to_csv( 'Clean_zenos_data_' + datetime.datetime.today().strftime('%m%d%Y%H%M%S') + '.csv', index=False, quotechar='"', sep=',', quoting=csv.QUOTE_ALL )
参数说明
quoting=csv.QUOTE_ALL:强制所有字段都添加文本限定符,是实现需求的核心配置。pandas默认值为csv.QUOTE_MINIMAL,仅当字段内容包含分隔符、换行符、限定符本身时才会加引号,所以你之前的配置没有生效quotechar='"':直接使用原生双引号即可,不需要使用HTML转义格式的"
替代方案(无需导入csv模块)
如果不想额外导入csv模块,可以直接使用csv.QUOTE_ALL对应的数值常量1:
df.to_csv( 'Clean_zenos_data_' + datetime.datetime.today().strftime('%m%d%Y%H%M%S') + '.csv', index=False, quotechar='"', sep=',', quoting=1 )
内容的提问来源于stack exchange,提问作者Mizanur Choudhury
相关产品推荐
相关产品推荐

