У меня есть датафрейм, сгенерированный из .csv
(я использую Python 3.5). df['category']
содержит только строки. Я хочу проверить этот столбец и, если строка содержит определенную подстроку (не очень интересно, где они находятся в строке, пока они существуют), заменить. Я использую этот скрипт
import pandas as pd
df=pd.read_csv('lastfile.csv')
df.dropna(inplace=True)
g='Drugs'
z='Weapons'
c='Flowers'
df.category = df.category.str.lower().apply(lambda x: g if ('mdma' or 'xanax' or 'kamagra' or 'weed' or 'tabs' or 'lsd' or 'heroin' or 'morphine' or 'hci' or 'cap' or 'mda' or 'hash' or 'kush' or 'wax'or 'klonop'or\
'dextro'or'zepam'or'amphetamine'or'ketamine'or 'speed' or 'xtc' or 'XTC' or 'SPEED' or 'crystal' or 'meth' or 'marijuana' or 'powder' or 'afghan'or'cocaine'or'haze'or'pollen'or\
'sativa'or'indica'or'valium'or'diazepam'or'tablet'or'codeine'or \
'mg' or 'dmt'or'diclazepam'or'zepam'or 'heroin' ) in x else(z if ('weapon'or'milit'or'gun'or'grenades'or'submachine'or'rifle'or'ak47')in x else c) )
print(df['category'])
Моя проблема в том, что некоторые записи, хотя и содержат некоторые из определенных мной подстрок, не заменяются. Это проблема, связанная с регулярным выражением?
Заранее спасибо.