大家好,我是Python进阶者。
一、前言
前几天在Python最强王者交流群【wen】问了一个Pandas处理数据的问题,问题如下:
通过python处理cvs文件,cvs默认是两列,但是因为系统导出的原因,第三列可能也有数值,导致df = pd.read_csv(path)报错:C error: Expected 2 fields in line 3, saw 3。
解决方法1:error_bad_lines=False,删除报错的行。请问还有其他方法处理偶然出现的第三列的值么?
二、实现过程
后来【隔壁😼山楂】给了一些建议如下:你这个是需要读第三列,还是不需要读,可以指定读取的列的,可以传这个参数。
【wen】:第三列不需要的,但是每个表格的列数是不固定的。有好几种cvs表格,偶然会出现突然某一行多了一两个参数。
【隔壁😼山楂】:那这样可以吗
【wen】:1 读取数据时加上error_bad_lines=False,确定列数。2再指定读取的列。这样?
【隔壁😼山楂】:你可以尝试下,我刚才试了几种情形都没有出现这种报错,可能pandas版本不一样。或者发点例子出来,我这边也能看下。
【wen】:是原始数据的问题 。你直接在cvs加多一列没有标题行的数据。
【隔壁😼山楂】:这样?但是我这边没问题
【wen】:瑜亮老师你运行有报错么
【瑜亮老师】:我又特地删除了每一行最后那个逗号,代码运行结果依然是一样的,没有任何问题。结果还是这样的,没有报错。
【隔壁😼山楂】:你把你报错的截图,还有代码和panda版本,还有数据样例发一下
【wen】:在成绩后一列再添加个数据也不报错么?
【隔壁😼山楂】:不报错
【瑜亮老师】:不报错,但是因为打印的问题,导致列名错位,
【黑科技.鼓包】:感觉是数据源出了不可见的问题,导致的,毕竟各位大佬手动定义源没出现任何问题
【wen】:是数据源的问题
顺利地解决了自己的问题。
如果你也有类似这种Python相关的小问题,欢迎随时来交流群学习交流哦,有问必答!
三、总结
大家好,我是Python进阶者。这篇文章主要盘点了一个Python库安装失败的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。
最后感谢粉丝【wen】提出的问题,感谢【瑜亮老师】给出的思路,感谢【莫生气】等人参与学习交流。
【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。