2016-06-28 103 views
1

我一直在試圖使用切片布爾索引代碼像大熊貓數據幀:熊貓錯誤類型錯誤:數據類型不理解

subset[subset.bl.str.contains("Stoke City")] 

bl是對象類型的。

然而,當我運行它,我有一個錯誤:

TypeError: data type not understood

如何去修復它?

UPDATE:

我嘗試使用:

subset[subset.bl.astype(str).str.contains("Stoke City")] 

但是返回:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xa3' in position 37: ordinal not in range(128)

然後我試圖解決的是:

subset.bl = subset.bl.str.encode("utf-8") 

這工作,但我然後返回相同的錯誤:

'data type not understood error'

當我再次嘗試:

subset[subset.bl.astype(str).str.contains("Stoke City")] 

回答

1

您可以通過astype嘗試投地str,因爲object可以是別的東西作爲string

subset[subset.bl.astype(str).str.contains("Stoke City")] 

您可以先檢查的type通過價值:

type(subset.ix[0, 'bl']) 

編輯:

你可以試試:

subset[subset.bl.str.encode("utf-8").str.contains("Stoke City")] 

或者:

subset['bl'] = subset.bl.str.encode("utf-8") 
subset[subset.bl.str.contains("Stoke City")] 
+0

它是如何工作的?如果沒有,我可以刪除答案。順便說一句,unicode的問題確實不好:( – jezrael

+0

並未奏效,很遺憾。但是,不要刪除您的答案,因爲我不知道你已經盡力解決這個問題的方式。我很欣賞你的努力幫助。:)它也可能幫助別人。 – elksie5000

+0

我甚至想檢查哪些數據類型的框架存在,但設置(corpus.bl.apply(種))剛剛返回{} Unicode的。 – elksie5000