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

合并多CSV文件至Excel时遇Error tokenizing data问题求助

解决合并CSV时的Error tokenizing data问题

问题核心原因

  1. 字段数不匹配:CSV文件中部分数据行的字段数量与表头不一致(如示例中表头为16列,部分行有20列),触发pandas的字段校验错误。
  2. 分隔符错误:代码默认使用逗号作为分隔符,但实际数据是空白(多空格/制表符)分隔,导致读取逻辑混乱,进一步加剧字段数匹配问题。
  3. 废弃参数无效:error_bad_lines=False是pandas旧版本参数,新版本已被on_bad_lines替代,因此该设置未生效。

解决方案

1. 关键参数修正

  • 指定正确分隔符:用sep='\s+'匹配任意空白字符(适配多空格/制表符场景),或明确用sep='\t'(若确认是纯制表符分隔)。
  • 替换兼容参数:用on_bad_lines='skip'直接跳过字段不匹配的行,或on_bad_lines='warn'仅提示不中断流程。
  • 明确表头与编码:指定header=0确保第一行为表头,优先尝试utf-8或gbk编码(中文环境更通用)。

2. 修改后的完整代码

import pandas as pd
import os

# 目标文件夹路径
folder_path = r'C:\Users\Documents\Test'
csv_files = [f for f in os.listdir(folder_path) if f.endswith('.csv')]
df_list = []

for csv in csv_files:
    file_path = os.path.join(folder_path, csv)
    try:
        # 基础读取配置:空白分隔、跳过错误行、UTF-8编码
        df = pd.read_csv(
            file_path,
            sep='\s+',
            header=0,
            on_bad_lines='skip',
            encoding='utf-8'
        )
        df_list.append(df)
    except UnicodeDecodeError:
        try:
            # UTF-8失败时尝试GBK编码(适配中文文件)
            df = pd.read_csv(
                file_path,
                sep='\s+',
                header=0,
                on_bad_lines='skip',
                encoding='gbk'
            )
            df_list.append(df)
        except Exception as e:
            print(f"无法读取文件 {csv},错误:{e}")
    except Exception as e:
        print(f"无法读取文件 {csv},错误:{e}")

# 合并数据并保存为Excel
if df_list:
    big_df = pd.concat(df_list, ignore_index=True)
    # 保存为Excel需先安装openpyxl:pip install openpyxl
    big_df.to_excel(os.path.join(folder_path, 'combined_file.xlsx'), index=False)
    print("合并完成,结果已保存为combined_file.xlsx")
else:
    print("未成功读取任何CSV文件")

3. 额外处理建议

  • 若需保留字段不匹配的行,可自定义所有可能的列名(如names=[f'Col{i}' for i in range(20)]),但多余列会填充空值。
  • 若不确定文件编码,可使用chardet库检测:安装后执行chardet.detect(open(file_path, 'rb').read())获取编码信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 04:08:13