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 07 Python
Python同时向控制台和文件输出日志logging的方法
May 26 Python
python字符串,数值计算
Oct 05 Python
Python实现的圆形绘制(画圆)示例
Jan 31 Python
python简易实现任意位数的水仙花实例
Nov 13 Python
python3实现小球转动抽奖小游戏
Apr 15 Python
python中设置超时跳过,超时退出的方式
Dec 13 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
Jan 20 Python
python画图常规设置方式
Mar 05 Python
Python替换NumPy数组中大于某个值的所有元素实例
Jun 08 Python
django rest framework 过滤时间操作
Jul 12 Python
python使用布隆过滤器的实现示例
Aug 20 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动态分页函数,PHP开发分页必备啦
2011/11/07 PHP
通达OA公共代码 php常用检测函数
2011/12/14 PHP
PHP四舍五入精确小数位及取整
2014/01/14 PHP
删除html标签得到纯文本可处理嵌套的标签
2014/04/28 PHP
Java 正则表达式学习总结和一些小例子
2012/09/13 Javascript
js 获取class的元素的方法 以及创建方法getElementsByClassName
2013/03/11 Javascript
JQuery onload、ready概念介绍及使用方法
2013/04/27 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
2013/11/17 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
2016/06/25 Javascript
jquery checkbox的相关操作总结
2016/10/17 Javascript
利用JS实现简单的日期选择插件
2017/01/23 Javascript
js 动态生成html 触发事件传参字符转义的实例
2017/02/14 Javascript
详解nodejs微信公众号开发——6.自定义菜单
2017/04/13 NodeJs
react配合antd组件实现的管理系统示例代码
2018/04/24 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
vue动态路由:路由参数改变,视图不更新问题的解决
2019/11/05 Javascript
vuex 实现getter值赋值给vue组件里的data示例
2019/11/05 Javascript
javascript实现点击产生随机图形
2021/01/25 Javascript
[27:39]Ti4 循环赛第二日 LGD vs Fnatic
2014/07/11 DOTA
[57:47]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python import自定义模块方法
2015/02/12 Python
在Python的while循环中使用else以及循环嵌套的用法
2015/10/14 Python
Python爬虫获取图片并下载保存至本地的实例
2018/06/01 Python
python scatter散点图用循环分类法加图例
2019/03/19 Python
python matplotlib库绘制散点图例题解析
2019/08/10 Python
宝塔面板成功部署Django项目流程(图文)
2020/06/22 Python
Pycharm安装python库的方法
2020/11/24 Python
阿联酋航空丹麦官方网站:Emirates DK
2019/08/25 全球购物
新年爱情寄语
2014/04/08 职场文书
读书之星事迹材料
2014/05/12 职场文书
真诚的求职信
2014/07/04 职场文书
2014年党课学习心得体会
2014/07/08 职场文书
质量主管工作职责
2014/09/26 职场文书
国庆节标语大全
2014/10/08 职场文书
幼儿园教师节活动总结
2015/03/23 职场文书
怎么用Python识别手势数字
2021/06/07 Python