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中文问题解决方法(总结了多位前人经验,初学者必看)
Mar 13 Python
pycharm 使用心得(四)显示行号
Jun 05 Python
Python实现简单的可逆加密程序实例
Mar 05 Python
python基础教程项目二之画幅好画
Apr 02 Python
好的Python培训机构应该具备哪些条件
May 23 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
Jul 11 Python
解决Python中list里的中文输出到html模板里的问题
Dec 17 Python
python使用Plotly绘图工具绘制气泡图
Apr 01 Python
python3 打印输出字典中特定的某个key的方法示例
Jul 06 Python
python计算n的阶乘的方法代码
Oct 25 Python
Python解析多帧dicom数据详解
Jan 13 Python
Python库安装速度过慢解决方案
Jul 14 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中用PHPMailer来发送邮件的示例(126.com的例子)
2013/06/24 PHP
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
js常用函数 不错
2006/09/08 Javascript
javascript编程起步(第六课)
2007/01/10 Javascript
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
2010/03/23 Javascript
form表单只提交数据而不进行页面跳转的解决方案
2013/09/18 Javascript
js判断滚动条是否已到页面最底部或顶部实例
2014/11/20 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
2015/02/20 Javascript
jQuery实现返回顶部功能
2016/02/23 Javascript
浅谈js中子页面父页面方法 变量相互调用
2016/08/04 Javascript
D3.js实现直方图的方法详解
2016/09/25 Javascript
JavaScript中 DOM操作方法小结
2017/04/25 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
2019/09/18 Javascript
vue 实现v-for循环回来的数据动态绑定id
2019/11/07 Javascript
[27:28]Ti4 冒泡赛第二天 iG vs NEWBEE 1
2014/07/15 DOTA
Python执行时间的计算方法小结
2017/03/17 Python
Python内建函数之raw_input()与input()代码解析
2017/10/26 Python
python数据抓取分析的示例代码(python + mongodb)
2017/12/25 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
2018/05/30 Python
Linux下多个Python版本安装教程
2018/08/15 Python
BP神经网络原理及Python实现代码
2018/12/18 Python
在Python中COM口的调用方法
2019/07/03 Python
Django Celery异步任务队列的实现
2019/07/24 Python
Python基础之字符串常见操作经典实例详解
2020/02/26 Python
Python列表元素删除和remove()方法详解
2021/01/04 Python
CSS3的resize属性使用初探
2015/09/27 HTML / CSS
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
斯图尔特·韦茨曼鞋加拿大官网:Stuart Weitzman加拿大
2019/10/13 全球购物
2014年司法局工作总结
2014/12/11 职场文书
疾病证明书
2015/06/19 职场文书
高考满分作文赏析(2篇)
2019/08/12 职场文书
MYSQL数据库使用UTF-8中文编码乱码的解决办法
2021/05/26 MySQL
OpenCV-Python实现人脸磨皮算法
2021/06/07 Python
Node实现搜索框进行模糊查询
2021/06/28 Javascript
python ConfigParser库的使用及遇到的坑
2022/02/12 Python
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js