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

合并同表头CSV文件后,pd.read_csv读取报错的问题排查

问题原因及解决办法

1. Shell合并命令的致命错误

你用的第二个命令file2.csv | tail -n +2 > file_merged.csv里,>是覆盖写入,会把之前写入的file1.csv内容完全清空,最终file_merged.csv里只有file2.csv去掉表头的数据,根本没完成两个文件的合并。正确的合并应该用追加符号>>:

# 先写入第一个文件的完整内容(含表头)
cat file1.csv > file_merged.csv
# 再追加第二个文件去掉表头的内容
tail -n +2 file2.csv >> file_merged.csv

2. 字段不匹配的深层原因

即使修正了命令,仍可能出现ParserError,结合报错信息“Expected 4 fields in line 1391, saw 7”,说明合并后的文件第1391行的字段数和表头不一致,常见原因:

  • 某行数据包含CSV分隔符(比如逗号)但未用双引号包裹,单独读取时pandas可能自动兼容,但合并后触发严格校验
  • 其中一个CSV文件存在行尾换行异常、数据截断的情况
  • 不同文件的表头看似相同,但实际字段数有细微差异(比如某个文件表头有隐藏空格)

排查与修复步骤

  • 定位问题行:用shell命令直接查看出错的行:
    sed -n '1391p' file_merged.csv
    
    对比表头字段数,检查是否有未转义的分隔符或格式异常。
  • 修复数据格式:对包含分隔符的字段用双引号包裹,确保每行字段数和表头一致。
  • 读取时兼容处理:如果暂时无法修复数据,可以在pd.read_csv中添加参数跳过错误行:
    df = pd.read_csv('file_merged.csv', on_bad_lines='skip')
    
    或用on_bad_lines='warn'查看具体错误详情。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 16:45:14