2016-06-28 104 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