这篇文章主要讲解了“Python数据读取的常见错误”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python数据读取的常见错误”吧!
1, UnicodeDecodeError
read_csv默认读入文件的编码格式为:utf - 8,如果读入文件无法被utf - 8编码,就会报上面的错误。
可是我们怎么知道读入文件的编码格式呢?今天,为大家介绍一个这方面的包:chardet,它能返回文件的编码格式。使用前先用pip安装chardet,安装一下。接下里这样编写返回编码格式,文件为读入的文件名称。
<节><代码> #获取文件编码类型代码> <代码> def get_encoding(文件):代码> <代码>,,#二进制方式读取,获取字节数据,检测类型代码> <代码>,,打开(文件,& # 39;rb # 39;) f: 代码> <代码>,,,,返回chardet.detect (f.read())(& # 39;编码# 39;]代码> <代码>节>
代码>
通过charadet包分析出文件的编码格式后,不管使用python原生的开放、阅读,还是熊猫的read_csv,都可以传入给参数编码。
2, 9月分隔符
常见文件的分隔符,比如,\ t, csv文件默认为逗号,不过常用的大数据库,比如蜂巢,有时会使用分隔符为\ t,这时候就需要调整参数9月。这类错误比较好解决。
3,读取文件时遇到和列数不对应的行,此时会报错
尤其在读入文件为上亿行的,快读完时,突然报出这个错,此行解析出的字段个数与之前行列数不匹配。
此时,需要调整一个参数:error_bad_lines为false,意思是忽略此行。
<节>pandas.read_csv (* * *, error_bad_lines=false)节>
实际项目,读入的文件数据环境比我们预想的复杂。假设我们的数据文件默认分隔符为逗号,然后如果某行的某个单元格取值为:
<节>& # 39;山东省,,潍坊市,,青州市& # 39;节>
就光这一个单元格,就会解析出多列,报错那也是自然的,这就要求我们在读入之前对数据做好充分的清洗。
4, EOF内部字符串起始行错误
这个错误在读入文件时,经常也会出现。这类错误需要修改引用参数。
<节>df =, pd.read_csv (csvfile,引用=csv.QUOTE_NONE )节>
默认取值为0,遇到错误时,可以根据文档调整。
<节>quoting :, int 或是csv.QUOTE_ *,,, default 0 control field quoting behavior per csv.QUOTE_ *,常量只Use one of QUOTE_MINIMAL (0), QUOTE_ALL (1), QUOTE_NONNUMERIC (2),或是QUOTE_NONE (3)。节>
感谢各位的阅读,以上就是“Python数据读取的常见错误”的内容了,经过本文的学习后,相信大家对Python数据读取的常见错误这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!