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中的jquery PyQuery库使用小结
May 13 Python
Python中的pass语句使用方法讲解
May 14 Python
Python使用一行代码获取上个月是几月
Aug 30 Python
将pandas.dataframe的数据写入到文件中的方法
Dec 07 Python
使用pandas实现csv/excel sheet互相转换的方法
Dec 10 Python
pandas删除指定行详解
Apr 04 Python
numpy.meshgrid()理解(小结)
Aug 01 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
Mar 10 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
Apr 27 Python
Python如何向SQLServer存储二进制图片
Jun 08 Python
python自动统计zabbix系统监控覆盖率的示例代码
Apr 03 Python
Python控制台输出俄罗斯方块移动和旋转功能
Apr 18 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
配置PHP使之能同时支持GIF和JPEG
2006/10/09 PHP
PHP编程函数安全篇
2013/01/08 PHP
教你如何解密 “ PHP 神盾解密工具 ”
2014/06/20 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
round robin权重轮循算法php实现代码
2016/05/28 PHP
php微信公众号开发模式详解
2016/11/28 PHP
PHP实现计算器小功能
2020/08/28 PHP
详解phpstorm2020最新破解方法
2020/09/17 PHP
jQuery 性能优化指南(3)
2009/05/21 Javascript
jquery引用方法时传递参数原理分析
2014/10/13 Javascript
写给小白的JavaScript引擎指南
2015/12/04 Javascript
javascript动态添加checkbox复选框的方法
2015/12/23 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
2016/01/19 Javascript
Bootstrap表单布局样式代码
2016/05/31 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
纯js和css完成贪吃蛇小游戏demo
2016/09/01 Javascript
微信小程序中setInterval的使用方法
2017/09/29 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
2017/10/24 Javascript
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
js 取消页面可以选中文字的功能方法
2018/01/02 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
2018/02/22 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
小程序实现锚点滑动效果
2019/09/23 Javascript
对python requests发送json格式数据的实例详解
2018/12/19 Python
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
大一学生假期实习的自我评价
2013/10/12 职场文书
大学生毕业自我评价范文分享
2013/11/07 职场文书
对孩子的寄语
2014/04/09 职场文书
关于爱国的标语
2014/06/24 职场文书
我的中国梦演讲稿500字
2014/08/19 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
预备党员期盼十八届四中全会召开思想汇报
2014/10/17 职场文书
护士先进个人总结
2015/02/13 职场文书
Win10 Anaconda安装python-pcl
2022/04/29 Servers