温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python数据读取的常见错误

发布时间:2021-08-17 23:19:46 来源:亿速云 阅读:252 作者:chen 栏目:大数据

这篇文章主要讲解了“Python数据读取的常见错误”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python数据读取的常见错误”吧!

1、UnicodeDecodeError

Python数据读取的常见错误

read_csv 默认读入文件的编码格式为:utf-8,如果读入文件无法被utf-8编码,就会报上面的错误。

可是我们怎么知道读入文件的编码格式呢?今天,为大家介绍一个这方面的包:chardet,它能返回文件的编码格式。使用前先用pip install chardet,安装一下。 接下里这样编写返回编码格式,file为读入的文件名称。

# 获取文件编码类型def get_encoding(file):    # 二进制方式读取,获取字节数据,检测类型    with open(file, 'rb') as f:        return chardet.detect(f.read())['encoding']

通过charadet包分析出文件的编码格式后,不管使用 python原生的open, read,还是pandas的read_csv,都可以传入给参数encoding.

2、 sep分隔符

常见文件的分隔符,比如 , \t, csv文件默认为逗号,不过常用的大数据库,比如hive,有时会使用分隔符为\t,这时候就需要调整参数sep. 这类错误比较好解决。

3、读取文件时遇到和列数不对应的行,此时会报错

尤其在读入文件为上亿行的,快读完时,突然报出这个错,此行解析出的字段个数与之前行列数不匹配。

此时,需要调整一个参数:error_bad_lines为false,意思是忽略此行。

pandas.read_csv(***,error_bad_lines=False)

实际项目,读入的文件数据环境比我们预想的复杂。假设我们的数据文件默认分隔符为逗号,然后如果某行的某个单元格取值为:

'山东省, 潍坊市, 青州市'

就光这一个单元格,就会解析出多列,报错那也是自然的,这就要求我们在读入之前对数据做好充分的清洗。

4、EOF inside string starting at line 错误

这个错误在读入文件时,经常也会出现。这类错误需要修改 quoting参数。

df = pd.read_csv(csvfile, quoting=csv.QUOTE_NONE )

默认取值为0,遇到错误时,可以根据文档调整。

quoting : int or csv.QUOTE_* instance, default 0Control field quoting behavior per csv.QUOTE_* constants. Use one of QUOTE_MINIMAL (0), QUOTE_ALL (1), QUOTE_NONNUMERIC (2) or QUOTE_NONE (3).

感谢各位的阅读,以上就是“Python数据读取的常见错误”的内容了,经过本文的学习后,相信大家对Python数据读取的常见错误这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI