Pandas to_csv导出时如何保留含分号的字符串不拆分?
解决DataFrame导出CSV时带分号字符串被拆分的问题
当你的DataFrame里有带分号的字符串,用to_csv默认参数导出后出现内容被拆分的情况,本质是因为导出的CSV未对特殊字符串做包裹处理,导致后续读取工具(比如Excel)误判分隔逻辑。要保持逗号作为分隔符同时保留原字符串完整,只需设置quoting参数让特殊内容被引号包裹即可:
方案一:给所有字段加引号
使用csv.QUOTE_ALL参数,导出时所有单元格内容都会被双引号包裹,彻底避免拆分问题:import pandas as pd import csv # 构造示例DataFrame df = pd.DataFrame({ 'content': ['blabla;bla;bla', '普通文本', 'test;demo'], 'num': [10, 20, 30] }) # 导出CSV df.to_csv('result.csv', index=False, quoting=csv.QUOTE_ALL)方案二:仅给非数值字段加引号
如果只想给字符串类型的内容加引号,数值类型保持原样,用csv.QUOTE_NONNUMERIC参数:df.to_csv('result.csv', index=False, quoting=csv.QUOTE_NONNUMERIC)
导出后的CSV内容示例:
"blabla;bla;bla",10
"普通文本",20
"test;demo",30
这样无论是用逗号作为分隔符读取,还是用Excel打开(需指定逗号为分隔符),带分号的字符串都会被识别为单个单元格的完整内容,不会被拆分。
内容的提问来源于stack exchange,提问作者NicholasHenrique
相关产品推荐
相关产品推荐

