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 相关文章推荐
windows下安装python paramiko模块的代码
Feb 10 Python
python实现simhash算法实例
Apr 25 Python
python实现基于两张图片生成圆角图标效果的方法
Mar 26 Python
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
Feb 13 Python
Python中字典的浅拷贝与深拷贝用法实例分析
Jan 02 Python
Python实现简易Web爬虫详解
Jan 03 Python
详解django三种文件下载方式
Apr 06 Python
Python使用sax模块解析XML文件示例
Apr 04 Python
python 弹窗提示警告框MessageBox的实例
Jun 18 Python
详解用Python调用百度地图正/逆地理编码API
Jul 02 Python
Python requests及aiohttp速度对比代码实例
Jul 16 Python
Python数据结构之队列详解
Mar 21 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产生随机数的两种方法实例代码 输出随机IP
2011/04/08 PHP
thinkPHP实现MemCache分布式缓存功能
2016/03/23 PHP
PHP文件类型检查及fileinfo模块安装使用详解
2019/05/09 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
css与javascript跨浏览器兼容性总结
2014/09/15 Javascript
jQuery函数map()和each()介绍及异同点分析
2014/11/08 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
2015/07/27 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
2015/08/11 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
Json对象和字符串互相转换json数据拼接和JSON使用方式详细介绍(小结)
2016/10/25 Javascript
利用jquery实现下拉框的禁用与启用
2016/12/07 Javascript
js Element Traversal规范中的元素遍历方法
2018/04/19 Javascript
Nodejs异步流程框架async的方法
2019/06/07 NodeJs
浅谈一种让小程序支持JSX语法的新思路
2019/06/16 Javascript
NodeJS有难度的面试题(能答对几个)
2019/10/09 NodeJs
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
Eclipse + Python 的安装与配置流程
2013/03/05 Python
python操作MySQL数据库具体方法
2013/10/28 Python
python元组操作实例解析
2014/09/23 Python
python创建一个最简单http webserver服务器的方法
2015/05/08 Python
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
使用Python控制摄像头拍照并发邮件
2019/04/23 Python
解决Django加载静态资源失败的问题
2019/07/28 Python
对django的User模型和四种扩展/重写方法小结
2019/08/17 Python
Windows下实现将Pascal VOC转化为TFRecords
2020/02/17 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
Python优秀开源项目Rich源码解析的流程分析
2020/07/06 Python
python 模拟登陆github的示例
2020/12/04 Python
HTML5中的postMessage API基本使用教程
2016/05/20 HTML / CSS
迪卡侬(Decathlon)加拿大官网:源自法国的运动专业超市
2020/11/22 全球购物
c/c++某大公司的两道笔试题
2014/02/02 面试题
结构和类有什么异同
2012/07/16 面试题
一份恶作剧的检讨书
2014/09/13 职场文书
会计求职自荐信范文
2015/03/04 职场文书