[英]Python pandas to excel UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 11
[英]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-8
, encoding=latin-1
或encoding=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.