我一直在尝试使用布尔索引代码切片pandas数据帧,如:
subset[subset.bl.str.contains("Stoke City")]
列bl
属于对象类型。
然而,当我运行它时,我有一个错误:
TypeError:数据类型不理解
我该如何修复它?
更新:
我尝试使用:
subset[subset.bl.astype(str).str.contains("Stoke City")]
但那又回来了:
UnicodeEncodeError:'ascii'编解码器无法对位置37中的字符u'\ xa3'进行编码:序数不在范围内(128)
然后我尝试解决这个问题:
subset.bl = subset.bl.str.encode("utf-8")
那很有效,但我又回复了同样的错误:
'数据类型不明白错误'
当我再次尝试时:
subset[subset.bl.astype(str).str.contains("Stoke City")]
答案 0 :(得分: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")]