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中的元类编程入门指引
Apr 15 Python
Python中zfill()方法的使用教程
May 20 Python
python的else子句使用指南
Feb 27 Python
Python中shutil模块的常用文件操作函数用法示例
Jul 05 Python
Fabric 应用案例
Aug 28 Python
Python判断telnet通不通的实例
Jan 26 Python
Python 隐藏输入密码时屏幕回显的实例
Feb 19 Python
django框架基于模板 生成 excel(xls) 文件操作示例
Jun 19 Python
用Python抢火车票的简单小程序实现解析
Aug 14 Python
Pycharm自动添加文件头注释和函数注释参数的方法
Oct 23 Python
用python批量解压带密码的压缩包
May 31 Python
Python下opencv库的安装过程及问题汇总
Jun 11 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
常用星际术语索引(新手指南)
2020/03/04 星际争霸
IIS环境下快速安装、配置和调试PHP5.2.0
2006/12/17 PHP
PHP similar_text 字符串的相似性比较函数
2010/05/26 PHP
PHP生成随机密码类分享
2014/06/25 PHP
取得单条网站评论以数组形式进行输出
2014/07/28 PHP
PHP-Java-Bridge使用笔记
2014/09/22 PHP
php中get_meta_tags()、CURL与user-agent用法分析
2014/12/16 PHP
js宝典学习笔记(上)
2007/01/10 Javascript
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
JS 有名函数表达式全面解析
2010/03/19 Javascript
js里的prototype使用示例
2010/11/19 Javascript
利用json获取字符出现次数的代码
2012/03/22 Javascript
js里取容器大小、定位、距离等属性搜集整理
2013/08/19 Javascript
jquery实现盒子下拉效果示例代码
2013/09/12 Javascript
js调用后台、后台调用前台等方法总结
2014/04/17 Javascript
javascript实现确定和取消提示框效果
2015/07/10 Javascript
JS实现仿FLASH效果的竖排导航代码
2015/09/15 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
2016/08/02 Javascript
BootStrap glyphicon图标无法显示的解决方法
2016/09/06 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
2017/04/14 Javascript
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
2017/09/28 Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
2018/07/31 Javascript
微信小程序实现上传word、txt、Excel、PPT等文件功能
2019/05/23 Javascript
nodeJs项目在阿里云的简单部署
2020/11/27 NodeJs
JavaScript实现筛选数组
2021/03/02 Javascript
Python实现字符串逆序输出功能示例
2017/06/24 Python
Python内存管理方式和垃圾回收算法解析
2017/11/11 Python
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
Made in Design意大利:现代家具、名家灯具和装饰
2020/10/27 全球购物
管理失职检讨书
2014/02/12 职场文书
残疾人小组计划书
2014/04/27 职场文书
大三学习计划书范文
2014/05/02 职场文书
运动会加油稿100字
2014/09/19 职场文书
2014年行政助理工作总结
2014/11/19 职场文书
Redis集群的关闭与重启操作
2021/07/07 Redis
sql时间段切分实现每隔x分钟出一份高速门架车流量
2022/02/28 SQL Server