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

如何使用Pandas读取表头损坏的CSV文件?报错求助

解决Pandas读取CSV时的ParserError问题

你的报错ParserError: Error tokenizing data. C error: Expected 1 fields in line 3, saw 2和编码无关,核心是CSV数据格式不规范,导致Pandas解析时字段数量不匹配。以下是针对性解决方法:

1. 确认并指定正确的分隔符

欧洲地区的CSV文件常使用分号;而非逗号,作为分隔符,先打开CSV文件查看实际分隔符:

  • 如果是分号,修改代码指定分隔符:
    # Jupyter环境
    path = 'data/DATA_vozila_RAW.csv'
    df = pd.read_csv(path, sep=';', encoding='Latin-1')
    
    # Visual Studio环境
    data = pd.read_csv('DATA_vozila_RAW.csv', encoding="Latin-1", delimiter=";")
    print(data)
    
  • 如果是制表符或其他符号,将sep设为对应值(比如制表符用sep='\t')。

2. 跳过格式错误的行

如果仅个别行存在格式问题,可直接跳过这些行(Pandas 1.4.0+支持):

df = pd.read_csv('data/DATA_vozila_RAW.csv', encoding='Latin-1', on_bad_lines='skip')

旧版本Pandas可使用error_bad_lines=False替代。

3. 处理非标准表头/数据起始行

如果CSV前几行是说明文字而非数据,导致列数不匹配,可跳过这些行:

# 跳过前2行,从第3行开始读取数据,并自定义列名
df = pd.read_csv('data/DATA_vozila_RAW.csv', encoding='Latin-1', skiprows=2, names=['字段1', '字段2'])

4. 使用Python引擎提升兼容性

默认的C引擎对不规范数据兼容性较差,切换到Python引擎尝试:

df = pd.read_csv('data/DATA_vozila_RAW.csv', encoding='Latin-1', engine='python')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 15:23:10