pandas.read_csv经常碰到下面的问题:
ParserError('Error tokenizing data. C error: Expected 3 fields in line 5, saw 5')
网上有很多解决方法,但都没有触及根本,比如添加参数error_bad_lines=False, sep=’\t’,或者修改文件后缀等等,其原因都是错误的。
根本原因其实就是格式错误,sep是使用csv.Sniffer嗅探器检测csv文件第一行得到的分隔符,包括,;空格等等。
这里要注意,根据函数的定义,sep在分隔符超过一个字符时,默认为正则表达式,会调用Python parsing engine解析。所以如果碰到上述问题,检测文件格式中是否存在分隔符冲突即可。