报错:pandas.errors.ParserError: Error tokenizing data. C error: Expected 1 fields in line 7, saw 2
Pandas 合并 CSV 文件时报错如下:
pandas.errors.ParserError: Error tokenizing data. C error: Expected 1 fields in line 7, saw 2
1、报错原因
中间字符串有错误,因为 read.csv 默认分隔符是“,”,比如前面都是一行没有“,”,后面突然出现一行有“,”,这时这行数据就会变成两列,前面是一列,后面忽然变成两列 ,这时程序就会报这种错误。
我的这个错误是由于 用 pandas.read_csv() 函数读取 Excel 文档(其实也不能怪我,同事给的文档后缀是 .csv,哪成想竟然是个Excel文件,最后是执行 file 命令才知道的
,坑了我一个小时的时间啊。。。)
2、解决办法
使用 pandas.read_excel()
当然我查到有改成如下代码成功了的,虽然对我的问题不适用,也记录在此,主要是 sep 参数:
1)data = pd.read_csv(inputfile, encoding='utf-8',header=None,sep = None)
2)data = pd.read_csv(inputfile, encoding='utf-8',header=None,sep = '\t')
3、事后感想
虽然此事乌龙,但也让我处理了一个从没遇到过的 bug,也算有其价值,顺便想暴打一顿同事小哥,毕竟我大周日的来加班也不容易啊。。。