У меня есть два кадра данных панд. Один содержит текст, другой набор терминов, которые я хотел бы найти и заменить в тексте. Я создал цикл, который может заменить каждое слово в тексте термином, однако он очень медленный, особенно если учесть, что он работает над большим корпусом.
Мой вопрос:
Есть ли более эффективное решение, которое повторяет мой метод ниже?
Пример текстового фрейма данных:
d = {'ID': [1, 2, 3], 'Text': ['here is some random text', 'random text here', 'more random text']}
text_df = pd.DataFrame(data=d)
Пример условия dataframe:
d = {'Replace_item': ['<RANDOM_REPLACED>', '<HERE_REPLACED>', '<SOME_REPLACED>'], 'Text': ['random', 'here', 'some']}
replace_terms_df = pd.DataFrame(data=d)
Пример текущего решения:
def find_replace(text, terms):
for _, row in terms.iterrows():
term = row['Text']
item = row['Replace_item']
text.Text = text.Text.str.replace(term, item)
return text
find_replace(text_df, replace_terms_df)
Пожалуйста, дайте мне знать, если что-то выше требует уточнения. Спасибо,