Как я могу исправить AttributeError: атрибут list не имеет атрибута astype в списках? - PullRequest
0 голосов
/ 02 ноября 2019

В основном я пытаюсь использовать метод внутри списка. Но я сталкиваюсь с проблемой при этом.

Я уже пытался использовать

[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'] является типом данных объект . losdata - это датафрейм для панд. Я ожидаю, что для каждого объекта в losdata ['Crime_Type'] я должен быть в состоянии использовать contains () внутри списка. Я видел такие решения, как

df[df['A'].str.contains('a')==True]

«A» - это просто имя любого столбца. Но я не понял, как это исправить в моем случае.

1 Ответ

0 голосов
/ 03 ноября 2019

Я нашел другой способ закодировать это.

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

Это работает, но все еще ждет более эффективного способа.

...