У меня есть столбец ингредиентов в кадре данных панд.Мне нужно удалить все, кроме названия ингредиента (например: 1/3 чашки кешью> кешью).
Ввод
recipe_name ingredient
0 Truvani Chocolate Turmeric Caramel Cups ⅓ cup cashews
1 Truvani Chocolate Turmeric Caramel Cups 4 dates
2 Truvani Chocolate Turmeric Caramel Cups 1 tablespoon almond butter
3 Truvani Chocolate Turmeric Caramel Cups 3 tablespoons coconut milk
4 Truvani Chocolate Turmeric Caramel Cups ½ teaspoon vanilla extract
Ожидаемый результат
recipe_name ingredient
0 Truvani Chocolate Turmeric Caramel Cups cashews
1 Truvani Chocolate Turmeric Caramel Cups dates
2 Truvani Chocolate Turmeric Caramel Cups almond butter
3 Truvani Chocolate Turmeric Caramel Cups coconut milk
4 Truvani Chocolate Turmeric Caramel Cups vanilla extract
Я пытался использовать словарь с общими словами, сопоставленными с пустыми строками, например:
remove_list ={'\d+': '', 'ounces': '', 'ounce': '', 'tablespoons': '', 'tablespoon': '', 'teaspoons': '', 'teaspoon': '', 'cup': '', 'cups': ''}
column = df['ingredient']
column.apply(lambda column: [remove_list[y] if y in remove_list else y for y in column])
Это вообще не изменило данные.
Я также пытался использовать регулярное выражение:
df['ingredients'] = re.sub(r'|'.join(map(re.escape, remove_list)), '', df['ingredients'])
Но это просто выдает ошибку «TypeError: ожидаемая строка или буфер».
Я очень новичок вPython, так что я думаю, что это возможно с помощью регулярных выражений, я просто не знаю, как это сделать.