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 正则式 概述及常用字符
May 07 Python
Python入门篇之编程习惯与特点
Oct 17 Python
编写Python脚本来获取mp3文件tag信息的教程
May 04 Python
用Python实现一个简单的多线程TCP服务器的教程
May 05 Python
Python实现线程池代码分享
Jun 21 Python
python用pickle模块实现“增删改查”的简易功能
Jun 07 Python
python标记语句块使用方法总结
Aug 05 Python
Python 获取项目根路径的代码
Sep 27 Python
Python实现Keras搭建神经网络训练分类模型教程
Jun 12 Python
python正则表达式的懒惰匹配和贪婪匹配说明
Jul 13 Python
如何用Python进行时间序列分解和预测
Mar 01 Python
Python Django获取URL中的数据详解
Nov 01 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 和 XML: 使用expat函数(一)
2006/10/09 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
浅谈laravel-admin的sortable和orderby使用问题
2019/10/03 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
2019/12/13 PHP
用jquery实现下拉菜单效果的代码
2010/07/25 Javascript
实现变速回到顶部的JavaScript代码
2011/05/09 Javascript
自己做的模拟模态对话框实现代码
2012/05/23 Javascript
js操作输入框中选择内容兼容IE及其他主流浏览器
2014/04/22 Javascript
jquery动态添加元素事件失效问题解决方法
2014/05/23 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
深入剖析JavaScript:Object类型
2016/05/10 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
2016/09/04 Javascript
在微信小程序中渲染HTML内容的方法示例
2018/09/28 Javascript
详解JavaScript中typeof与instanceof用法
2018/10/24 Javascript
[03:47]2015国际邀请赛第三日现场精彩回顾
2015/08/08 DOTA
ssh批量登录并执行命令的python实现代码
2012/05/25 Python
python文件比较示例分享
2014/01/10 Python
python获取外网IP并发邮件的实现方法
2017/10/01 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
2018/02/24 Python
python判断列表的连续数字范围并分块的方法
2018/11/16 Python
python selenium爬取斗鱼所有直播房间信息过程详解
2019/08/09 Python
最简单的matplotlib安装教程(小白)
2020/07/28 Python
Python 实现微信自动回复的方法
2020/09/11 Python
介绍一下Ruby的特点
2013/01/20 面试题
护士实习自我鉴定
2013/10/22 职场文书
客服服务心得体会
2013/12/30 职场文书
《中国的气候》教学反思
2014/02/23 职场文书
2014国庆节幼儿园亲子活动方案
2014/09/16 职场文书
教师正风肃纪剖析材料
2014/10/20 职场文书
接收函格式
2015/01/30 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
全国劳模先进事迹材料(2016精选版)
2016/02/25 职场文书
奖学金申请书(范文)
2019/08/14 职场文书
《王国之心》迎来了发售的20周年, 野村哲发布贺图
2022/04/11 其他游戏
Python如何让字典保持有序排列
2022/04/29 Python