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

Jupyter中使用pandas.read_csv加载csv文件报ParserError错误如何解决

pandas读取csv文件ParserError报错解决方案

报错原因

出现ParserError: Error tokenizing data. C error: Expected 1 field in line 12, saw 2报错的核心原因是pandas默认使用的字段分隔符与csv文件实际的分隔符不匹配:

  • pandas默认把逗号,作为csv文件的分隔符,你的文件前11行没有逗号,因此pandas判定每行仅包含1个字段
  • 第12行出现了非逗号的分隔符(常见为空格、分号、制表符),pandas识别到2个字段,和前11行的字段数不一致,因此抛出解析错误
  • 你之前尝试的修改方案没有解决核心问题:error_bad_lines=False会直接跳过格式异常的行导致数据丢失,且该参数在pandas 2.0及以上版本已被弃用;sep='\n'会把整行内容作为单个字段读取,不会拆分多列,自然无法得到正常的结构化数据。

解决方法

步骤1:确认文件实际分隔符

你可以先通过以下代码读取文件前15行,查看字段之间实际的分隔符号:

with open(r'C:/Users/kharm/Dropbox/Jupyter/Assignment/AutoInsurSweden.csv', 'r', encoding='utf-8') as f:
    for _ in range(15):
        print(repr(f.readline()))

从输出内容即可直接看到字段之间的分隔符号。

步骤2:指定正确分隔符读取

根据确认的分隔符,在pd.read_csv中通过sep参数指定即可:

  • 若为分号分隔:sep=';'
  • 若为制表符分隔:sep='\t'
  • 若为任意数量空格分隔:sep='\s+'

示例代码:

import pandas as pd
# 请将sep参数替换为你确认的实际分隔符
data = pd.read_csv(r'C:/Users/kharm/Dropbox/Jupyter/Assignment/AutoInsurSweden.csv', header=None, sep=';')
data.head()

异常兼容处理

如果读取时出现编码报错,可以额外指定编码格式,常用编码为utf-8、gbk、latin-1,示例:

data = pd.read_csv(r'C:/Users/kharm/Dropbox/Jupyter/Assignment/AutoInsurSweden.csv', header=None, sep=';', encoding='gbk')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:54:03