大家好,我是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,删除报错的行。请问还有其他方法处理偶然出现的第三列的值么?

# yyds干货盘点 # 请问还有其他方法处理Pandas偶然出现的第三列的值么_数据

二、实现过程

后来【隔壁😼山楂】给了一些建议如下:你这个是需要读第三列,还是不需要读,可以指定读取的列的,可以传这个参数。

【wen】:第三列不需要的,但是每个表格的列数是不固定的。有好几种cvs表格,偶然会出现突然某一行多了一两个参数。

【隔壁😼山楂】:那这样可以吗

【wen】:1 读取数据时加上error_bad_lines=False,确定列数。2再指定读取的列。这样?

【隔壁😼山楂】:你可以尝试下,我刚才试了几种情形都没有出现这种报错,可能pandas版本不一样。或者发点例子出来,我这边也能看下。

【wen】:是原始数据的问题 。你直接在cvs加多一列没有标题行的数据。

【隔壁😼山楂】:这样?但是我这边没问题

【wen】:瑜亮老师你运行有报错么

# yyds干货盘点 # 请问还有其他方法处理Pandas偶然出现的第三列的值么_数据源_02

【瑜亮老师】:我又特地删除了每一行最后那个逗号,代码运行结果依然是一样的,没有任何问题。结果还是这样的,没有报错。

【隔壁😼山楂】:你把你报错的截图,还有代码和panda版本,还有数据样例发一下

【wen】:在成绩后一列再添加个数据也不报错么?

【隔壁😼山楂】:不报错

【瑜亮老师】:不报错,但是因为打印的问题,导致列名错位,

# yyds干货盘点 # 请问还有其他方法处理Pandas偶然出现的第三列的值么_Python_03

【黑科技.鼓包】:感觉是数据源出了不可见的问题,导致的,毕竟各位大佬手动定义源没出现任何问题

【wen】:是数据源的问题

顺利地解决了自己的问题。

# yyds干货盘点 # 请问还有其他方法处理Pandas偶然出现的第三列的值么_数据源_04

如果你也有类似这种Python相关的小问题,欢迎随时来交流群学习交流哦,有问必答!

三、总结

大家好,我是Python进阶者。这篇文章主要盘点了一个Python库安装失败的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【wen】提出的问题,感谢【瑜亮老师】给出的思路,感谢【莫生气】等人参与学习交流。

【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。