python pandas read_excel返回describe()

时间:2015-06-10 19:41:54

标签: python excel pandas unicode

我喜欢熊猫,但我遇到了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

2 个答案:

答案 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')