繁体   English   中英

熊猫read_excel奇怪的错误:UnicodeDecodeError:'ascii'编解码器无法解码字节0xe2

[英]Pandas read_excel strange error: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2

当我在IPython中(或准确地说是Jupyter)读取一个excel文件时,该数据框似乎没问题,但是我无法显示它或在其上处理文本列(例如,当关键点与另一个excel合并时)是文本字段),因为我得到了一个“

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2...

错误

奇怪的是,如果我做类似的事情:

for i in df['Textual Col Name']:
    print i

它会打印所有值。

我在这里尝试了提供给其他类似问题的不同解决方案,但是没有任何效果。 我不认为从excel文件中读取df时有什么好的答案。

希望得到您的帮助,以解决该问题,如果可能的话,还请解释为什么所有人都说完了我仍然可以打印单个项目。

提前致谢!

您需要指定文件的编码,而无需知道文件的编码方式是不可能的,但是您可以尝试一些尝试,如果不知道,则可以查看哪个文件可以工作。 encoding=tuf-8encoding=latin-1encoding=cp1252 pd.read_excel

尝试使用二等分方法来隔离有问题的行:

import numpy as np
import pandas as pd

# substitute your df here
df = pd.DataFrame({'textcol':np.random.randint(10, size=[1000])})

def isokay(df):
    try:
        print(df)
    except UnicodeDecodeError:
        return False
    return True

i = 0
chunksize = len(df) // 2
while True:
    if isokay(df.iloc[i:i+chunksize]):
        i += chunksize
        if i > len(df):
            print('No error found')
            break
    else:
        if chunksize <= 1:
            # Problem occurs at row i
            print('Problem occurs on row {}'.format(i))
            print(df.iloc[i])
            break
        else:
            chunksize /= 2

print(df.iloc[i])可能会导致错误。 如果是这样,您可以查阅excel文件以找出第i行包含的数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM