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

Pandas DataFrame导出CSV文件出现行错乱问题该如何解决?

问题原因

导出CSV行错乱的核心诱因是fulltext列的文本内容包含未转义的换行符(\n、\r、\r\n),CSV格式默认会将这类换行符识别为行分隔符,导致单行数据被强制拆分为多行,最终出现格式错乱。更换分隔符、转换为列表的操作没有触及核心问题,因此无法生效。

修复方案

分两步处理即可解决问题:

  1. 预处理文本字段,清理或转义内容中的特殊控制字符
    可以将换行符替换为空格,避免触发CSV的行拆分规则;如果需要保留换行信息,也可以替换为转义后的\\n,后续读取时再还原。
  2. 调整to_csv的导出参数,强制所有字段用引号包裹
    开启quoting=csv.QUOTE_ALL参数后,CSV解析器会将引号内的所有内容识别为单个字段,不会处理内部的特殊字符,进一步避免格式错乱。

修正后的完整代码如下:

import os
import csv
import pandas as pd

def __toCSV(dataframe, name):
    # 预处理fulltext列,清除换行、回车等控制字符
    dataframe['fulltext'] = dataframe['fulltext'].str.replace(r'[\n\r\t]', ' ', regex=True)
    name = name.replace(' ', '_')
    name = name + '.csv'
    try:
        # 新增quoting参数强制包裹所有字段,编码改为utf-8-sig适配Excel打开
        return dataframe.to_csv(name, encoding='utf-8-sig', index=False, quoting=csv.QUOTE_ALL)
    except Exception as e:
        print(f'The object can\'t be converted into a csv file.\n{e}')
    finally:
        if os.path.exists(name):
            # 修正终端转义符,避免后续输出一直处于加粗状态
            print('\033[1m'+ '{}  is succesfully created.'.format(name)+'\033[0m' )

后续读取该CSV时,同步添加quoting=csv.QUOTE_ALL参数即可正确还原数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:42:00