导出Pandas DataFrame至CSV时字符串True被转TRUE,如何避免?
解决Pandas导出CSV时布尔字符串大小写被转换的问题
当Pandas导出包含"True"/"true"这类字符串的DataFrame到CSV文件时,默认会将其转为全大写的"TRUE",要保留原字符串的大小写格式,可以通过以下方式处理:
方法一:强制指定列类型为字符串并全局添加引号
先确保DataFrame的列类型为字符串,避免Pandas将其识别为布尔值,再通过quoting参数给所有字段添加引号,阻止CSV工具转换大小写:
import pandas as pd import csv # 创建DataFrame时强制指定数据类型为字符串 df = pd.DataFrame(["True"], dtype=str) # 导出CSV时设置全局引号参数,同时关闭索引输出 df.to_csv("df.csv", quoting=csv.QUOTE_ALL, index=False)
方法二:仅给非数值字段添加引号
如果不想给所有字段加引号,可使用csv.QUOTE_NONNUMERIC参数,仅对非数值型字段添加引号,同样能保留字符串原格式:
import pandas as pd import csv df = pd.DataFrame(["True"], dtype=str) df.to_csv("df.csv", quoting=csv.QUOTE_NONNUMERIC, index=False)
关键注意点
必须通过dtype=str强制列类型为字符串,否则Pandas会自动将"True"识别为布尔值True,导出时必然转为大写的"TRUE"。
内容的提问来源于stack exchange,提问作者Ash Mistry
相关产品推荐
相关产品推荐

