问题描述
报错代码是
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
他的思路是针对数据进行检查,希望对你有所帮助~