У меня есть фрейм данных и список следующим образом:
# Set up df
series1 = pd.Series(['orange','apple pie', 'freshly imported pear','grapes','dragonfruit','exotic mango'])
series2 = pd.Series([1,2,3,4,5,6])
df = pd.DataFrame({'Product': series1, 'ID': series2})
# Set up list
lst = ['local pear','orange juice' , 'made from real grapes', 'apple', 'pineapple pen', 'banana mama']
Я хочу создать новый столбец в фрейме данных, который показывает, есть ли в списке каждый продукт в фрейме данных (да или нет),Это «Да», если есть какое-либо совпадение подстрок.
Мой желаемый результат:
output = pd.DataFrame({'Product': series1, 'ID': series2, 'Matched': pd.Series(['yes','yes','yes','no','no','no'])})
Я пробовал:
for v in lst:
for u in df['Product']:
if u in v or v in u:
df['Matched'] = 'yes'
else:
df['Matched'] = 'no'
Проблема в том, что результат перезаписывается для каждой итерации цикла, и я не знаю, как это исправить. Поскольку элементы имеют разную длину, писать «у» в «v» или «v в u» - это мой способ обойти это, но это кажется неправильным. Пожалуйста, помогите