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

pandas修复CSV多余列行或删除异常行的实现方案

pandas处理含转义符异常CSV的两种方案

方案1:优先实现保留所有行的标准5列输出

核心思路是先预处理文本移除反斜杠,避免反斜杠转义逗号导致列拆分错误,再用pandas加载:

import pandas as pd
from io import StringIO

# 替换路径为你本地的CSV文件路径
with open('input.csv', 'r', encoding='utf-8') as f:
    # 移除所有反斜杠,消除转义效果
    content = f.read().replace('\\', '')

# 加载处理后的内容为DataFrame,skipinitialspace会自动去掉分隔符后的多余空格
df = pd.read_csv(StringIO(content), skipinitialspace=True)

# 输出修正后的结果文件
df.to_csv('fixed_5columns.csv', index=False, encoding='utf-8')

运行后输出的文件和预期效果1完全一致,反斜杠被删除,description列内容自动拼接,所有行都保留为标准5列结构。


方案2:删除异常列数的行(效果2)

如果部分行的异常原因不止反斜杠转义,无法通过替换修复,可以用该方案过滤异常行:

import pandas as pd

# 先把所有行读为单列,避免自动拆分错误
df_raw = pd.read_csv('input.csv', sep='\t', header=None, names=['raw_line'])

# 只保留按逗号拆分后恰好为5列的行
df_valid = df_raw[df_raw['raw_line'].apply(lambda x: len(x.split(',')) == 5)].copy()

# 拆分符合要求的行为5列
df = df_valid['raw_line'].str.split(',', expand=True)
# 把第一行设为表头并去除前后空格
df.columns = df.iloc[0].str.strip()
df = df[1:].reset_index(drop=True)

# 输出过滤后的结果
df.to_csv('filtered_result.csv', index=False, encoding='utf-8')

运行后会自动删除所有列数不等于5的行,仅保留符合要求的正常数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:36:03