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

使用Python Pandas合并多个CSV文件时遭遇解析错误

解决Pandas合并CSV时的ParserError问题

这个错误的核心原因是目标CSV文件中存在格式不规范的行:某一行的字段数量与表头字段数不一致(比如错误提示里的第2602行,预期1个字段却出现了2个),通常是因为行内包含未正确转义的分隔符、换行符,或者文件本身格式混乱导致的。以下是几种可行的解决方法:


方法一:跳过错误行快速合并

直接让Pandas跳过格式异常的行,适合不纠结少量错误数据的场景:

import pandas as pd

csv_files = ['data_SHTest1_283.csv', 'data_SHTest1_284.csv']
dfs = []
for file in csv_files:
    # on_bad_lines='skip' 跳过错误行,也可以用'on_bad_lines='warn'查看错误行详情
    df = pd.read_csv(file, on_bad_lines='skip')
    dfs.append(df)

combined_df = pd.concat(dfs, ignore_index=True)
combined_df.to_csv('Master File VS.csv', index=False)

方法二:定位并修复错误行

如果需要保留所有数据,可以先找到异常行手动修复:

# 遍历文件找出字段数异常的行
target_field_count = 1  # 替换为表头实际的字段数
for file in csv_files:
    with open(file, 'r', encoding='utf-8') as f:
        for line_num, line in enumerate(f, start=1):
            # 假设分隔符是逗号,可根据实际修改
            current_field_count = len(line.strip().split(','))
            if current_field_count != target_field_count:
                print(f"文件 {file} 第 {line_num} 行异常:{line.strip()}")

找到异常行后,打开CSV文件手动调整(比如给包含分隔符的字段加上引号包裹),再重新执行合并代码。

方法三:强制指定字段数解析

如果明确知道表头的字段名和数量,可以强制按指定格式解析:

import pandas as pd

# 替换为实际的表头字段列表
column_names = ['字段1']
csv_files = ['data_SHTest1_283.csv', 'data_SHTest1_284.csv']
dfs = []

for file in csv_files:
    df = pd.read_csv(file, names=column_names, header=0, on_bad_lines='skip')
    dfs.append(df)

combined_df = pd.concat(dfs, ignore_index=True)
combined_df.to_csv('Master File VS.csv', index=False)

方法四:确认分隔符是否正确

有时候错误是因为CSV实际使用的分隔符不是默认的逗号(比如制表符\t、分号;),可以指定正确的分隔符:

# 示例:假设分隔符是制表符
df = pd.read_csv(file, sep='\t', on_bad_lines='skip')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 08:31:20