解决pandas.errors.ParserError....Expected 2 fields in line 2系列问题【python报错】

文章讲述了在使用pandas的read_csv函数时遇到的ParserError,原因在于读入非规则数据结构的csv文件。作者提供了使用csv.reader替代read_csv的方法,以及推荐检查数据格式的外部资源链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

报错代码是

 df = pd.read_csv('./datasets/assist0910/train1.csv', header=None)

详细报错信息当时忘记截屏了,关键报错信息如下:

pandas.errors.ParserError: Error tokenizing data. C error: Expected 2 fields in line 2, saw 305

解决方法

首先!如果是excel文件就用read_excel方法读入,csv文件就用read_csv方法读入!
一开始我就是犯了一个这种低级的错误才报错的==

言归正传,出现报错后我开始在csdn上搜了很多方法,但是依旧没有解决我的问题。这时我重新看了这个报错信息,发现上面的提示信息是:第二行应有2个字段 ,而我读入的csv文件本身是不规则的,它的第一行正好只有两个元素,而第二行有305个元素!
所以问题的关键在于,用read_csv方法只能读入文件中的元素本身是规则矩阵的情况,比如元素排列是三行五列或五行四列等等,像我这种非规则的情况下就会报上面的错误!

综上,解决方案就要求我们换一种读入数据的方式。在这里我的所有变量名都和之前的一样,而改了读入方式之后对df的所有处理都可以跟上面方式读入后处理的一模一样!(通俗说,改这段代码就行,后面代码不用改

with open('./datasets/assist0910/train1.csv', newline='') as csvfile:
    reader = csv.reader(csvfile)
    df = list(reader)

如果这种方法和你报错的原因关系不大,也可以参考这个博主的博客 链接: link
他的思路是针对数据进行检查,希望对你有所帮助~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值