2015-06-10 60 views
3

我愛熊貓,但我遇到了Unicode錯誤的實際問題。 read_excel()返回可怕的Unicode錯誤:python pandas read_excel返回describeDecodeError describe()

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() 

我使用Win64的anaconda2.2.0,與大熊貓0.16

+0

這個工作對我來說一次:DF [ 'somecol'] values.astype( '統一') https://github.com/pydata/pandas/issues/7758 – Gecko

+0

幫自己一個大忙,並立即切換到python3。編碼問題全部在python3中解決。 – firelynx

回答

0

嘗試

df=pd.read_excel('tmp.xlsx',encoding='iso-8859-1') 

如果還是不行,也許嘗試保存Excel文件爲CSV和使用pd.read_csv

+0

同樣的問題。有什麼辦法可以共享一個excel輸入文件嗎?也許通過谷歌驅動器或保管箱?這通常在堆棧溢出時如何完成? – hsinger

+0

通常人們只是從他們的輸入文件中複製並粘貼前幾行,並將其放入代碼示例框中,通常只需確定問題的具體情況即可。 – maxymoo

0

嘗試此方法建議here

df=pd.read_excel('tmp.xlsx',encoding='sys.getfilesystemencoding()') 
0

希望這可以幫助別人..

我有這個錯誤...

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

讀取Excel文件df = pd.read_excel...和努力後,給這個數據幀指定一個新列df['new_col'] = 'foo bar'

仔細檢查之後,我發現問題是......數據幀中有一些'nan'列由於缺少列標題..在使用以下代碼刪除'nan'列之後..其他所有內容都正常。

df = df.dropna(axis=1,how='all') 
相關問題