+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

无法读取文件:UnicodeDecodeError

发布于2020-09-30 16:06     阅读(157)     评论(0)     点赞(12)     收藏(4)


0

1

2

3

4

5

6

7

8

9

我有一个“ csv”文件,其中包含str,int和datetime的列。使用打开文件时pd.read_csv(file_name, encoding='utf-8'),出现以下错误:

UnicodeDecodeError:“ utf-8”编解码器无法解码位置109中的字节0xa5:无效的起始字节

我尝试使用下面的代码,但所有列均得到“ str”类型的结果,每个值均以逗号分隔。

file = open(file_name, "r", encoding='utf-8', errors='ignore')
df = file.read()

如何将文件作为数据帧读取或将上面代码的结果转换为数据帧?


解决方案


如果出现UnicodeDecode错误,则数据不是UTF-8编码的。

您没有提供任何示例数据,但要加载一个简单的文件,例如:

filename,integer,date
file,1,2018-02-02

这可以用来获取字符串以外的数据类型(免责声明,不是熊猫专家(还)...只需阅读文档即可。解析日期的方法可能更简单):

>>> import pandas as pd
>>> from datetime import datetime
>>> a=pd.read_csv('out.csv',dtype={1:int},converters={2:lambda x:datetime.strptime(x,'%Y-%m-%d')})
>>> a
  filename  integer       date
0     file        1 2018-02-02
>>> a.dtypes
filename            object
integer              int32
date        datetime64[ns]
dtype: object

0

1

2

3

4



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接: https://www.pythonheidong.com/blog/article/554731/76f4ef166a209c629622/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

12 0
收藏该文
已收藏

评论内容:(最多支持255个字符)