You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用to_csv将DataFrame转为无引号且不破坏内容的CSV文件

解决DataFrame导出CSV时自动加引号的问题

问题根源

你的DataFrame每个单元格已经是smiles内容;数字的完整行格式,但导出时指定了sep=';',pandas会把单元格内的;误判为列分隔符,自动添加引号避免解析歧义。

正确导出方案

  • 方案1:pandas直接导出(推荐)
    指定一个不会出现在数据中的字符作为分隔符(比如制表符\t),同时关闭引号功能:
import csv
df_test.to_csv('path', index=False, header=False, sep='\t', quoting=csv.QUOTE_NONE)

由于数据中不存在制表符,pandas不会对内容做任何转义或加引号操作,直接输出原始格式。

  • 方案2:手动写入文件
    如果不确定哪个字符不会冲突,直接遍历每行写入:
with open('path', 'w', encoding='utf-8') as f:
    for content in df_test.iloc[:, 0]:
        f.write(f"{content}\n")

原有方法失败原因

  • 初始方法:单元格包含sep指定的;,pandas自动添加引号防止列解析错误。
  • 方法一:关闭引号但未设置转义符,pandas无法处理内容中的;,触发报错。
  • 方法二:用;作为转义符,会把内容里的;转义为;;,导致格式错误。
  • 方法三:用空字符\0转义,会在;前插入不可见的null符号,不符合需求。

内容的提问来源于stack exchange,提问作者joe doe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 01:52:06