В Python Pandas DataFrame
, я пытаюсь применить конкретную метку к строке, если столбец «Поисковые запросы» содержит любые возможные строки из объединенного списка с разделителями каналов. Как я могу делать условные if, elif, else заявления с Pandas?Python Pandas Dataframe Conditional If, Elif, Else
Например:
df = pd.DataFrame({'Search term': pd.Series(['awesomebrand inc', 'guy boots', 'ectoplasm'])})
brand_terms = ['awesomebrand', 'awesome brand']
footwear_terms = ['shoes', 'boots', 'sandals']
#Note: this does not work
if df['Search term'].str.contains('|'.join(brand_terms)):
df['Label'] = 'Brand'
elif df['Search term'].str.contains('|'.join(footwear_terms)):
df['Label'] = 'Footwear'
else:
df['Label'] = '--'
Пример требуемый выход:
Search Term Label
awesomebrand inc Brand
guy boots Footwear
ectoplasm --
Я попытался добавление .any()
к концам отчетности, но она применяет Brand
метки для каждой строки.
Большинство примеров, с которыми я сталкиваюсь, сравнивают, если значение столбца ==
равно (не то, что я хочу) или выполняет числовые сравнения, а не сравнения строк текста.
'.str.contains()'? Нет необходимости в '.str' part – Zizouz212