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

如何去除CSV列内容内的换行符以适配Pandas处理?

解决Teradata导出CSV字段内换行导致Pandas读取异常的问题

一、导出时直接避免字段内换行

  • 修改SQL查询,把字段内的换行符替换成空格:
    Teradata中换行符对应CHR(10),直接在SELECT语句里替换目标字段即可,示例:
    SELECT REPLACE(TEXT, CHR(10), ' ') AS TEXT, DATE
    FROM your_table_name;
    
    这样导出的CSV里,字段内的换行直接转为空格,从根源解决问题。
  • 检查SQL Assistant导出设置:部分版本的工具里可以查找导出选项,看是否有“处理字段内换行”的相关配置,但用SQL替换是最稳妥的方案。

二、预处理已生成的CSV文件

如果已经导出了有问题的CSV,用Python脚本处理,仅移除字段内的换行,保留行分隔符:

import re

# 读取原始文件内容
with open('input.csv', 'r', encoding='utf-8') as f:
    raw_content = f.read()

# 用正则匹配单引号包裹范围内的换行,替换为空格
fixed_content = re.sub(r"(?<=')[^']*\n[^']*(?=')", lambda match: match.group().replace('\n', ' '), raw_content)

# 写入处理后的文件
with open('output.csv', 'w', encoding='utf-8') as f:
    f.write(fixed_content)

该正则只会替换单引号包裹区域内的换行,不会改动行与行之间的分隔换行。

三、直接让Pandas正确读取带字段内换行的CSV

Pandas本身支持识别引号包裹的字段内换行,只需正确设置参数:

import pandas as pd

# 读取文件,指定单引号为字段包裹符,使用python引擎处理复杂格式
df = pd.read_csv(
    'your_file.csv',
    sep=';',
    quotechar="'",
    engine='python'
)

# 若需要将字段内换行转为空格,执行以下处理
df['TEXT'] = df['TEXT'].str.replace('\n', ' ')

# 保存处理后的CSV文件
df.to_csv('fixed_file.csv', sep=';', quotechar="'", index=False)

无需修改原始文件,直接让Pandas正确解析内容,之后按需调整字段格式即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 12:05:21