Pandas之read_csv()读取文件跳过报错行的解决


Posted in Python onApril 21, 2020

读取文件时遇到和列数不对应的行,此时会报错。若报错行可以忽略,则添加以下参数:

样式:

pandas.read_csv(***,error_bad_lines=False)

pandas.read_csv(filePath) 方法来读取csv文件时,可能会出现这种错误:

ParserError:Error tokenizing data.C error:Expected 2 fields in line 407,saw 3.

是指在csv文件的第407行数据,期待2个字段,但在第407行实际发现了3个字段。

原因:header只有两个字段名,但数据的第407行却出现了3个字段(可能是该行数据包含了逗号,或者确实有三个部分),导致pandas不知道该如何处理。

解决办法:把第407行多出的字段删除,或者通过在read_csv方法中设置error_bad_lines=False来忽略这种错误:

改为

pandas.read_csv(filePath,error_bad_lines=False)

来忽略掉其中出现错乱(例如,由于逗号导致多出一列)的行。

KeyError错误:

报这种错是由于使用了DataFrame中没有的字段,例如id字段,原因可能是:

.csv文件的header部分没加逗号分割,此时可使用df.columns.values来查看df到底有哪些字段:

print(df.columns.values)

.在操作DataFrame的过程中丢掉了id字段的header,却没发现该字段已丢失。

例如:

df=df[df['id']!='null']#取得id字段不为null的行
df=df['id']#赋值后df为Series,表示df在id列的值,而不再是一个DataFrame,于是丢掉了id的头,此时若再使用df['id']将报错。

取列的值,与取列的区别:

df=df['id']#取id列的值,赋值后df为Series类型,可用print(type(df))来查看其类型
df=df[['id']]#只取df的id列作为一个新的DataFrame,赋值后df仍然是一个DataFrame
df=df[['id','age']]#取df的id和age列作为一个新的DataFrame,赋值后df仍然是一个DataFrame

过滤行

df=df[df['id']!='null']#过滤掉id字段取值为'null'的行

注意,此处的'null'是一个字符串,若df中某行id字段的值不是字符串型,或者为空,将报TypeError:invalid type comparison错,因为只有相同类型的值才能进行比较。

解决办法:如果不能保证id列都是string类型,则需要去掉该过滤条件。

补充知识:pandas 使用read_csv读取文件时产生错误:EOF inside string starting at line

解决方法:使用参数 quoting

df = pd.read_csv(csvfile, header = None, delimiter="\t", quoting=csv.QUOTE_NONE, encoding='utf-8')

以上这篇Pandas之read_csv()读取文件跳过报错行的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现根据指定端口探测服务器/模块部署的方法
Aug 25 Python
python opencv之分水岭算法示例
Feb 24 Python
python3将视频流保存为本地视频文件
Jun 20 Python
Python对数据进行插值和下采样的方法
Jul 03 Python
python flask实现分页的示例代码
Aug 02 Python
python爬虫之urllib,伪装,超时设置,异常处理的方法
Dec 19 Python
详解Python self 参数
Aug 30 Python
Python开发之基于模板匹配的信用卡数字识别功能
Jan 13 Python
基于python 取余问题(%)详解
Jun 03 Python
Python3实现英文字母转换哥特式字体实例代码
Sep 01 Python
Django配置Bootstrap, js实现过程详解
Oct 13 Python
使用pandas实现筛选出指定列值所对应的行
Dec 13 Python
基于python实现数组格式参数加密计算
Apr 21 #Python
python实现与redis交互操作详解
Apr 21 #Python
Django-migrate报错问题解决方案
Apr 21 #Python
pandas读取csv文件提示不存在的解决方法及原因分析
Apr 21 #Python
jupyter 导入csv文件方式
Apr 21 #Python
tensorflow指定CPU与GPU运算的方法实现
Apr 21 #Python
Python多线程实现支付模拟请求过程解析
Apr 21 #Python
You might like
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
2007/04/12 PHP
jQuery+php实现ajax文件即时上传的详解
2013/06/17 PHP
PHP写的资源下载防盗链类分享
2014/05/12 PHP
php版微信自动获取收货地址api用法示例
2016/09/22 PHP
PHP双向链表定义与用法示例
2018/01/31 PHP
JavaScript Date对象使用总结
2009/05/14 Javascript
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
2010/08/03 Javascript
初窥JQuery(二)事件机制(2)
2010/12/06 Javascript
javascript jq 弹出层实例
2013/08/25 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
2014/05/14 Javascript
jquery中checkbox使用方法简单实例演示
2015/11/24 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
3种不同的ContextMenu右键菜单实现代码
2016/11/03 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
微信小程序 swiper组件构建轮播图的实例
2017/09/20 Javascript
简单谈谈js的数据类型
2017/09/25 Javascript
Angular简单验证功能示例
2017/12/22 Javascript
vue select组件的使用与禁用实现代码
2018/04/10 Javascript
解决循环中setTimeout执行顺序的问题
2018/06/20 Javascript
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
vue-cli和v-charts实现可视化图表过程解析
2019/10/08 Javascript
小程序自定义弹框效果
2020/11/16 Javascript
python实现决策树ID3算法的示例代码
2018/05/30 Python
Django框架的中的setting.py文件说明详解
2018/10/15 Python
Python从单元素字典中获取key和value的实例
2018/12/31 Python
实例讲解Python脚本成为Windows中运行的exe文件
2019/01/24 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
英国羊绒服装购物网站:Pure Collection
2018/10/22 全球购物
实习生自荐信范文
2013/11/13 职场文书
银行委托书范本
2014/04/04 职场文书
1000字打架检讨书
2014/11/03 职场文书
先进事迹材料范文
2014/12/29 职场文书
2015年城管执法工作总结
2015/07/23 职场文书
2016大学生毕业实习心得体会
2016/01/23 职场文书