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中比较运算符的使用
May 13 Python
Python实现快速排序算法及去重的快速排序的简单示例
Jun 26 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
Oct 20 Python
Python爬虫之网页图片抓取的方法
Jul 16 Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
Feb 22 Python
如何使用Python标准库进行性能测试
Jun 25 Python
postman模拟访问具有Session的post请求方法
Jul 15 Python
基于Python检测动态物体颜色过程解析
Dec 04 Python
基于python+selenium的二次封装的实现
Jan 06 Python
Django+Django-Celery+Celery的整合实战
Jan 20 Python
Python基于爬虫实现全网搜索并下载音乐
Feb 14 Python
Jupyter notebook 输出部分显示不全的解决方案
Apr 24 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
Discuz!下Memcache缓存实现方法
2010/05/28 PHP
基于MySQL到MongoDB简易对照表的详解
2013/06/03 PHP
ThinkPHP中调用PHPExcel的实现代码
2017/04/08 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
php递归函数怎么用才有效
2018/02/24 PHP
javascript针对DOM的应用分析(四)
2012/04/15 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
用js实现trim()的解决办法
2013/04/16 Javascript
JS的encodeURI和java的URLDecoder.decode使用介绍
2014/05/08 Javascript
深入理解javascript原型链和继承
2014/09/23 Javascript
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
jQuery3.0中的buildFragment私有函数详解
2016/08/16 Javascript
input file上传 图片预览功能实例代码
2016/10/25 Javascript
浅谈angularjs依赖服务注入写法的注意点
2017/04/24 Javascript
微信小程序的分类页面制作
2017/06/27 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
2018/03/01 Javascript
JavaScript对象拷贝与Object.assign用法实例分析
2018/06/20 Javascript
ES6 Promise对象概念及用法实例详解
2019/10/15 Javascript
python中pip的安装与使用教程
2018/08/10 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
2018/12/10 Python
python 检查是否为中文字符串的方法
2018/12/28 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
2019/10/30 Python
Python高级编程之继承问题详解(super与mro)
2019/11/19 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
使用CSS变量实现炫酷惊人的悬浮效果
2019/04/26 HTML / CSS
美国礼品卡商城: Gift Card Mall
2017/08/25 全球购物
Ryderwear美国官网:澳大利亚高端健身训练装备品牌
2018/04/24 全球购物
世嘉游戏英国官方商店:SEGA Shop UK
2019/09/20 全球购物
2014自荐信的写作技巧
2014/01/28 职场文书
工作分析计划书
2014/04/30 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
个人对照检查材料思想汇报(四风问题)
2014/09/25 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
地心历险记观后感
2015/06/15 职场文书
小爸爸观后感
2015/06/15 职场文书
Python3 如何开启自带http服务
2021/05/18 Python