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 相关文章推荐
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
Jan 05 Python
详解pyqt5 动画在QThread线程中无法运行问题
May 05 Python
利用python的socket发送http(s)请求方法示例
May 07 Python
Selenium 模拟浏览器动态加载页面的实现方法
May 16 Python
Python遍历文件夹 处理json文件的方法
Jan 22 Python
关于Python作用域自学总结
Jun 10 Python
解决python中导入win32com.client出错的问题
Jul 26 Python
python读取word 中指定位置的表格及表格数据
Oct 23 Python
通过 Python 和 OpenCV 实现目标数量监控
Jan 05 Python
python实现逻辑回归的示例
Oct 09 Python
python复合条件下的字典排序
Dec 18 Python
Pycharm在指定目录下生成文件和删除文件的实现
Dec 28 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获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
php求正负数数组中连续元素最大值示例
2014/04/11 PHP
删除html标签得到纯文本可处理嵌套的标签
2014/04/28 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
PhpStorm配置Xdebug调试的方法步骤
2019/02/02 PHP
html下载本地
2006/06/19 Javascript
[IE&FireFox兼容]JS对select操作
2007/01/07 Javascript
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
jQuery EasyUI API 中文文档 - Draggable 可拖拽
2011/09/29 Javascript
JQuery 中几个类选择器的简单使用介绍
2013/03/14 Javascript
extjs 如何给column 加上提示
2014/07/29 Javascript
JS 获取鼠标左右键的键值方法
2014/10/11 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
jQuery的deferred对象详解
2014/11/12 Javascript
jQuery简单实现遍历数组的方法
2015/04/14 Javascript
AngularJS中的过滤器filter用法完全解析
2016/04/22 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
2016/07/07 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
EasyUI为Numberbox添加blur事件的方法
2017/03/05 Javascript
JS实现合并json对象的方法
2017/10/10 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
JavaScript实现单点登录的示例
2020/09/23 Javascript
在Python中使用zlib模块进行数据压缩的教程
2015/06/26 Python
详谈pandas中agg函数和apply函数的区别
2018/04/20 Python
Python中xml和json格式相互转换操作示例
2018/12/05 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
2020/02/15 Python
python3.6使用SMTP协议发送邮件
2020/05/20 Python
python向企业微信发送文字和图片消息的示例
2020/09/28 Python
python 解决Windows平台上路径有空格的问题
2020/11/10 Python
西班牙著名的珠宝首饰品牌:P D PAOLA
2018/09/15 全球购物
Desigual美国官方网站:西班牙服装品牌
2019/03/29 全球购物
财务会计毕业生自荐信
2013/11/02 职场文书
法人代表资格证明书
2015/06/18 职场文书
个人收入证明格式
2015/06/24 职场文书
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android