我使用
将pandas数据帧保存为csvdf_to_save.to_csv(save_file_path)
但是当我使用
重读时df_temp = pd.read_csv(file_path)
我收到一条错误消息
UnicodeDecodeError:' utf-8'编解码器不能将字节0xbf解码到位 158:无效的起始字节
我已经尝试通过打开csv文件强制编码将其读取为utf-8
df_temp = pd.read_csv(file_path, index_col=False, encoding="utf-8",sep=',')
真的卡住了,有人可以帮忙吗?
非常感谢
答案 0 :(得分:4)
更改分类数据的编码:
def my_func(df):
for col in df.columns:
df[col] = df[col].str.decode('iso-8859-1').str.encode('utf-8')
此功能将就分类数据的编码进行原位更改。
答案 1 :(得分:3)
该字符未以UTF-8编码。
您可以使用(docs):
重现它b'\xbf'.decode("utf-8", "strict")
Traceback (most recent call last):
File "<ipython-input-7-4db5a43b4577>", line 1, in <module>
b'\xbf'.decode("utf-8", "strict")
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbf in position 0: invalid start byte
您可以尝试不同的编码,以解决此角色的问题:
b'\xbf'.decode("ISO-8859-1", "strict")
Out: '¿'
因此,您的read_csv
将更改为:
df_temp = pd.read_csv(file_path, index_col=False, encoding="ISO-8859-1")
答案 2 :(得分:0)
或者避免编码问题使用EXCEL(也返回DataFrames )
writer = pd.ExcelWriter('train_numeric.xlsx')
newTRAIN.to_excel(writer,'Sheet1')
THEN
newTEST_excel = pd.read_excel('train_numeric.xlsx')
newTEST_excel.head(2)