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

Pandas调用to_csv()保存CSV时单条记录拆分为多行如何解决

Pandas调用to_csv()单条记录拆成多行的解决方法

根本原因

导出CSV后单条记录被拆为多行,是因为DataFrame的文本字段(示例中为comment_text列)本身包含\n、\r类换行符,Pandas默认写入时不会主动处理字段内部的换行符,这些换行符会被直接识别为CSV的行分隔标记,最终导致记录断裂。

可行方案

  • 方案1:提前清洗文本内换行符(完全匹配你需要的单行存储效果)
    该方案会直接把字段内的所有换行替换为空格,导出后用任何工具打开都是单条记录占单行:

    # 单文本列处理示例,替换所有换行、连续换行为单空格
    df['comment_text'] = df['comment_text'].astype(str).str.replace(r'[\r\n]+', ' ', regex=True)
    
    # 正常导出即可
    df.to_csv('result.csv', index=False)
    

    如果需要批量处理所有文本列,无需逐列指定:

    # 筛选所有字符串类型列批量清洗
    str_columns = df.select_dtypes(include=['object', 'string']).columns
    df[str_columns] = df[str_columns].apply(
        lambda x: x.astype(str).str.replace(r'[\r\n]+', ' ', regex=True)
    )
    df.to_csv('result.csv', index=False)
    
  • 方案2:合法包裹带特殊字符的字段(保留文本内换行的场景使用)
    如果你不想删除文本中原有的换行,只需要保证CSV读取时不会出现记录错位,可以通过指定quoting参数,让Pandas给带换行、逗号、引号的字段自动加双引号包裹,符合规范的CSV解析工具(Pandas、Excel等)读取时会自动识别引号内的内容属于同一字段,不会拆分行:

    import csv
    # QUOTE_MINIMAL模式会自动给含特殊字符的字段加引号
    df.to_csv('result.csv', index=False, quoting=csv.QUOTE_MINIMAL)
    

    注意:该方案导出的文件用纯文本编辑器打开时,仍能看到字段内部的换行,属于合法CSV格式,不存在数据错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 05:55:05