Pandas read _excel: 'utf-8' codec can't decode byte 0xa8 in position 14: invalid start byte[英] Pandas read _excel: 'utf-8' codec can't decode byte 0xa8 in position 14: invalid start byte

本文是小编为大家收集整理的关于Pandas read _excel: 'utf-8' codec can't decode byte 0xa8 in position 14: invalid start byte的处理方法,想解了Pandas read _excel: 'utf-8' codec can't decode byte 0xa8 in position 14: invalid start byte的问题怎么解决?Pandas read _excel: 'utf-8' codec can't decode byte 0xa8 in position 14: invalid start byte问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

尝试读取MS Excel文件,版本2016.文件包含一些带有数据的列表.从数据库下载的文件,可以在MS Office中正确打开.在下面的示例中,我更改了文件名.

编辑:文件包含俄语和英语单词.最有可能使用Latin-1编码,但是encoding='latin-1'没有帮助

import pandas as pd
with open('1.xlsx', 'r', encoding='utf8') as f:
        data = pd.read_excel(f)

结果:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa8 in position 14: invalid start byte

没有encoding ='utf8'

'charmap' codec can't decode byte 0x9d in position 622: character maps to <undefined>

P.S.任务是处理52个文件,将每个表格中的数据与52个文件中的相应表合并.因此,请不要处理工作建议.

推荐答案

很可能问题是在俄罗斯符号中.

Charmap是使用默认解码方法,以防未注意编码.

我看到UTF-8和Latin-1是否没有帮助,然后尝试读取此文件而不是

pd.read_excel(f)

但是

pd.read_table(f)

甚至只是

f.readline()

为了检查什么是符号提出执行并删除此符号/符号.

其他推荐答案

很可能您正在使用Python3.在Python2中,这不会发生.

XLSX文件是二进制文件(实际上它们是XML,但已被压缩),因此您需要以二进制模式打开它们.使用此电话打开:

open('1.xlsx', 'rb')

没有完整的追溯,但是我想unicodeDecodeError来自文件对象,而不是来自read_excel().之所以发生这种情况,是因为字节流可以包含任何东西,但是我们不希望解码太早发生. read_excel()必须接收原始字节并能够处理它们.

其他推荐答案

问题是原始请求者将用文件手调用read_excel为第一个参数.正如最后一个响应者所证明的那样,第一个论点应该是包含文件名的字符串.

我使用以下方式遇到了相同的错误:

df = pd.read_excel(open("file.xlsx",'r'))

但是正确的是:

df = pd.read_excel("file.xlsx")

本文地址:https://www.itbaoku.cn/post/1727964.html