У меня есть фрейм данных с длинным текстовым полем и короткой строкой, которая по сути является категорией. Моя цель - использовать регулярное выражение для создания нового столбца в кадре данных, соответствующего тому, есть ли совпадение. Регулярное выражение обусловлено категорией. Вот пример:
a = ['the dog is mad and sad 50', 'the cat is happy']
b = ['dog', 'cat']
regex = ['[0-9]{2}', '[0-9]{3}']
ab = pd.DataFrame(zip(a,b,regex), columns = ['text', 'category', 'pattern'])
В приведенном выше примере, чтобы избежать использования от l oop до l oop для каждой категории, я сделал шаблон строковым столбцом в моем фрейме данных и хочу использовать столбец шаблона в качестве регулярного выражения.
Однако, когда я запускаю следующее, я получаю сообщение об ошибке
ab['match'] = np.where(ab[ab['text'].str.contains(ab['pattern'], regex = True)], 1, 0)
TypeError: 'Series' objects are mutable, thus they cannot be hashed
Фрейм данных очень большой и потенциально много категорий, поэтому Векторизованное решение, подобное приведенному выше, было бы предпочтительным.