我有一个'csv'文件,其中包含str,int和datetime列。当我使用pd.read_csv(file_name, encoding='utf-8')
打开文件时,出现以下错误:
UnicodeDecodeError:'utf-8'编解码器无法将字节0xa5解码到位 109:无效的起始字节
我尝试使用下面的代码但是我得到了所有列的'str'类型结果,每个值用逗号分隔。
file = open(file_name, "r", encoding='utf-8', errors='ignore')
df = file.read()
如何将文件作为数据框读取或将上述代码的结果转换为数据框?
答案 0 :(得分:0)
如果您收到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