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 相关文章推荐
Django在Win7下的安装及创建项目hello word简明教程
Jul 14 Python
Python匹配中文的正则表达式
May 11 Python
Python计算两个日期相差天数的方法示例
May 23 Python
python中利用Future对象回调别的函数示例代码
Sep 07 Python
Python数据可视化正态分布简单分析及实现代码
Dec 04 Python
详解Python核心编程中的浅拷贝与深拷贝
Jan 07 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
Sep 26 Python
python打开使用的方法
Sep 30 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
Mar 11 Python
Python创建文件夹与文件的快捷方法
Dec 08 Python
Python打包exe时各种异常处理方案总结
May 18 Python
Python Pandas pandas.read_sql_query函数实例用法分析
Jun 21 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 采集心得技巧
2009/05/15 PHP
kohana框架上传文件验证规则写法示例
2014/07/14 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
解决laravel session失效的问题
2019/10/14 PHP
js 链式延迟执行DOME
2012/01/04 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
js验证框架实现代码分享
2016/05/18 Javascript
如何用JS判断两个数字的大小
2016/07/21 Javascript
微信小程序实战之自定义模态弹窗(8)
2017/04/18 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
vue Render中slots的使用的实例代码
2017/07/19 Javascript
React Native使用Modal自定义分享界面的示例代码
2017/10/31 Javascript
JavaScript通过mouseover()实现图片变大效果的示例
2017/12/20 Javascript
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
微信小程序缓存支持二次开发封装实现解析
2019/12/16 Javascript
[00:34]TI7不朽珍藏III——纯金地穴编织者饰品展示
2017/07/15 DOTA
[43:26]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第二场 11.20
2020/11/23 DOTA
让python在hadoop上跑起来
2016/01/27 Python
Python多层嵌套list的递归处理方法(推荐)
2016/06/08 Python
详解python 发送邮件实例代码
2016/12/22 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
Python3.x爬虫下载网页图片的实例讲解
2018/05/22 Python
python中必要的名词解释
2019/11/20 Python
世界上最大的专业美容用品零售商:Sally Beauty
2017/07/02 全球购物
世界领先的艺术图书出版社:TASCHEN
2018/07/23 全球购物
BannerBuzz加拿大:在线定制横幅印刷、广告和标志
2020/03/10 全球购物
小学教师听课制度
2014/02/01 职场文书
《走一步再走一步》教学反思
2014/02/15 职场文书
校园安全演讲稿
2014/05/09 职场文书
推广活动策划方案
2014/08/23 职场文书
常务副县长“三严三实”对照检查材料思想汇报
2014/10/05 职场文书
艺术节开幕词
2015/01/28 职场文书
民事调解书范文
2015/05/20 职场文书
大学生社会实践感想
2015/08/11 职场文书
Python 阶乘详解
2021/10/05 Python
一行Python命令实现批量加水印
2022/04/07 Python