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命令行参数解析模块optparse使用实例
Apr 13 Python
Python自动调用IE打开某个网站的方法
Jun 03 Python
pycharm安装图文教程
May 02 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
Jul 26 Python
python将excel转换为csv的代码方法总结
Jul 03 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
Aug 12 Python
Django使用中间件解决前后端同源策略问题
Sep 02 Python
用Python画一个LinkinPark的logo代码实例
Sep 10 Python
Python3 A*寻路算法实现方式
Dec 24 Python
python super函数使用方法详解
Feb 14 Python
python 爬取吉首大学网站成绩单
Jun 02 Python
python函数的两种嵌套方法使用
Apr 02 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 批量生成html,txt文件的实现代码
2013/06/26 PHP
javascript利用初始化数据装配模版的实现代码
2010/11/17 Javascript
js判断undefined类型示例代码
2014/02/10 Javascript
js中的setInterval和setTimeout使用实例
2014/05/09 Javascript
js获取会话框prompt的返回值的方法
2015/01/10 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
jQuery组件easyui基本布局实现代码
2016/08/25 Javascript
KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定
2016/10/10 Javascript
jQuery Easyui datagrid editor为combobox时指定数据源实例
2016/12/19 Javascript
原生javascript实现读写CSS样式的方法详解
2017/02/20 Javascript
jquery实现一个全局计时器(商城可用)
2017/06/30 jQuery
JS设计模式之访问者模式定义与用法分析
2018/02/05 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
2018/03/14 Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
2018/06/06 Javascript
vue实现局部刷新的实现示例
2019/04/16 Javascript
vue中的inject学习教程
2019/04/24 Javascript
使用vuex解决刷新页面state数据消失的问题记录
2019/05/08 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
2020/07/19 Javascript
[01:22]DOTA2神秘商店携大量周边降临完美大师赛
2017/11/07 DOTA
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
Django集成百度富文本编辑器uEditor攻略
2014/07/04 Python
对numpy中数组转置的求解以及向量内积计算方法
2018/10/31 Python
Tensorflow 实现释放内存
2020/02/03 Python
使用Pycharm分段执行代码
2020/04/15 Python
初学者学习Python好还是Java好
2020/05/26 Python
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
详解canvas绘图时遇到的跨域问题
2018/03/22 HTML / CSS
雅诗兰黛加拿大官网:Estee Lauder加拿大
2019/07/31 全球购物
alice McCALL官网:澳大利亚时尚品牌
2020/11/16 全球购物
struct和class的区别
2015/11/20 面试题
信访工作者先进事迹
2014/01/17 职场文书
优质服务口号
2014/06/11 职场文书
党政领导班子群众路线对照检查材料思想汇报
2014/09/27 职场文书
个人道歉信大全
2019/04/11 职场文书
Python MNIST手写体识别详解与试练
2021/11/07 Python