我喜欢熊猫,但我遇到了Unicode错误的真正问题。 read_excel()返回可怕的Unicode错误:
import pandas as pd
df=pd.read_excel('tmp.xlsx',encoding='utf-8')
df.describe()
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call last)
...
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 259: ordinal not in range(128)
我发现最初的Excel在许多单元格的末尾有(不间断的空格),可能是为了避免将长数字字符串转换为浮点数。
解决这个问题的一种方法是剥离细胞,但必须有更好的东西。
for col in df.columns:
df[col]=df[col].str.strip()
我正在使用anaconda2.2.0 win64,pandas为0.16
答案 0 :(得分:3)
尝试使用此方法建议here:
df=pd.read_excel('tmp.xlsx',encoding=sys.getfilesystemencoding())
答案 1 :(得分:1)
希望这有助于某人。
我遇到了这个错误:
UnicodeDecodeError: 'ascii' codec can't decode byte ....
阅读Excel文件df = pd.read_excel...
并尝试将新列分配给数据框,如df['new_col'] = 'foo bar'
经过仔细检查后,我发现了问题所在。由于缺少列标题,数据框中有一些'nan'
列。放弃“南京”之后列使用以下代码,其他一切都没问题。
df = df.dropna(axis=1,how='all')