如何解决AttributeError:“ list”属性在list-comprehensions中没有属性'astype'?

时间:2019-11-02 19:03:01

标签: python pandas list-comprehension contains

基本上,我试图在列表推导中使用contains方法。但是我在执行此操作时遇到了问题。

我已经尝试使用

[x.apply(', '.join).str.contains('|'.join(searchfor)) for x in losdata["Crime_Type"] ]
代码中的

。没用

searchfor = ["BURGALORY","ROBBERY","THEFT","STOLEN",
            "SNATCHING","STEALING","FELONY","PICKPOCKET","BUNCO","EMBEZZLEMENT"]
losdata["Crime_Type"] = ["Burglary" if(x.astype(str).str.contains('|'.join(searchfor))) 
                         else "TBC"
                         for x in losdata["Crime_Type"]
                        ]
print(losdata.head())

losdata ['Crime_Type']是 object 数据类型。 losdata是一个熊猫数据框。 我期望的是,对于losdata ['Crime_Type']中的每个对象,我应该能够在列表推导内使用contains()。我见过

之类的解决方案
df[df['A'].str.contains('a')==True]

'A'只是任何列名称。 但是我还没有想出如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

我找到了另一种编码方式。

losdata["Crime_Type"] = ["BURGLARY" if(x.find("BURGALORY")>0 or x.find("ROBBERY")>0 or x.find("THEFT")>0 or x.find("STOLEN")>0 or x.find("SNATCHING")>0 or x.find("STEALING")>0)
                         else "OTHER"
                         for x in losdata['Crime_Type']
                        ]
print(losdata.head())

它有效,但仍在等待更有效的方法。