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

Python使用Pandas读取CSV文件时遭遇PandasParserError求助

解决Pandas读取CSV时的PandasParserError字段数不匹配问题

问题重现

使用Python 3.8 + Pandas 1.3.1调用pd.read_csv()时触发报错:

PandasParserError: Error tokenizing data. C error: Expected 3 fields in line 4, saw 4

代码片段:

import pandas as pd

file_path = 'path/to/my/file.csv'
data = pd.read_csv(file_path)

解决方案

1. 跳过格式错误的行

Pandas默认严格校验每行字段数,遇到不匹配行直接报错。可通过参数跳过错误行:

# Pandas 1.3.0+ 推荐写法
data = pd.read_csv(file_path, on_bad_lines='skip')

# 兼容旧版本的写法(1.3.1同样支持)
data = pd.read_csv(file_path, error_bad_lines=False, warn_bad_lines=True)

warn_bad_lines=True会在控制台输出被跳过的行号,方便后续排查CSV文件问题。

2. 强制指定字段数/列名

若明确知道CSV应有的列数,可自定义列名并强制按指定列数读取(需使用Python解析器):

import pandas as pd

# 假设正确列数为3,自定义列名
col_names = ['col1', 'col2', 'col3']
data = pd.read_csv(file_path, names=col_names, engine='python', error_bad_lines=False)

3. 修复CSV文件格式问题

报错本质是第4行字段数与其他行不一致,建议直接检查CSV文件:

  • 查看第4行是否多输入了分隔符(如逗号、制表符)
  • 检查字段中是否包含未用引号包裹的分隔符(比如字段内容是a,b但未加双引号,会被拆成两个字段)
  • 确认换行符统一(Windows下为\r\n,避免混用其他格式)

如果是引号导致的字段拆分错误,可指定Pandas的引号处理规则:

import csv
data = pd.read_csv(file_path, quoting=csv.QUOTE_ALL)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 00:25:59