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 FTP操作类代码分享
May 13 Python
在Python程序中操作文件之flush()方法的使用教程
May 24 Python
Python处理菜单消息操作示例【基于win32ui模块】
May 09 Python
Python根据已知邻接矩阵绘制无向图操作示例
Jun 23 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
Jan 10 Python
python openpyxl使用方法详解
Jul 18 Python
pycharm重命名文件的方法步骤
Jul 29 Python
Python类中方法getitem和getattr详解
Aug 30 Python
Django 路由层URLconf的实现
Dec 30 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
Feb 02 Python
浅析Python OpenCV三种滤镜效果
Apr 11 Python
Python first-order-model实现让照片动起来
Jun 25 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
DC动画电影《黑暗正义联盟》曝预告 5月5日上线数字平台
2020/04/09 欧美动漫
php实现ping
2006/10/09 PHP
PHP学习之PHP表达式
2006/10/09 PHP
php5新改动之短标记启用方法
2008/09/11 PHP
PHP 实用代码收集
2010/01/22 PHP
基于session_unset与session_destroy的区别详解
2013/06/03 PHP
php实现加减法验证码代码
2014/02/14 PHP
php将远程图片保存到本地服务器的实现代码
2015/08/03 PHP
PHP附件下载中文名称乱码的解决方法
2015/12/17 PHP
php自定义扩展名获取函数示例
2016/12/12 PHP
基于jquery.Jcrop的头像编辑器
2010/03/01 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
JQuery插件jcarousellite的参数中文说明
2015/05/11 Javascript
jquery实现弹出层登录和全屏层注册特效
2015/08/28 Javascript
js实现内容显示并使用json传输数据
2016/03/16 Javascript
js阻止浏览器默认行为的简单实例
2016/05/15 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
2016/10/13 Javascript
Bootstrap下拉菜单Dropdowns的实现代码
2017/03/17 Javascript
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
2017/12/05 Javascript
Vue 样式切换及三元判断样式关联操作
2020/08/09 Javascript
python多重继承新算法C3介绍
2014/09/28 Python
Python的Flask框架应用调用Redis队列数据的方法
2016/06/06 Python
Python分治法定义与应用实例详解
2017/07/28 Python
Python模块文件结构代码详解
2018/02/03 Python
Python基于pandas实现json格式转换成dataframe的方法
2018/06/22 Python
python爬虫 基于requests模块的get请求实现详解
2019/08/20 Python
python如何基于redis实现ip代理池
2020/01/17 Python
Expected conditions模块使用方法汇总代码解析
2020/08/13 Python
python 绘制场景热力图的示例
2020/09/23 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
2020/12/21 Python
Python的信号库Blinker用法详解
2020/12/31 Python
荷兰最大的多品牌男装连锁店:Adam Brandstore
2019/12/31 全球购物
2014县委书记党的群众路线教育实践活动对照检查材料思想汇报
2014/09/22 职场文书
详解TypeScript中的类型保护
2021/04/29 Javascript
详解Laravel服务容器的优势
2021/05/29 PHP