У меня есть два кадра данных панд, один из которых содержит один столбец всех обзоров фильмов с открытым текстом (movie_review_df), а другой (movie_ngrams_df) содержит наиболее распространенные ngram (верхние 5 из ngram = 1 и верхние 5 из ngram = 2)найдено в movie_review_df.
По сути, я хотел бы написать функцию, которая будет перебирать каждую строку моего столбца слов / словосочетаний в моем файле movie_ngrams_df и использовать их в качестве поисков, чтобы найти рецензии, содержащие эти слова / рабочие фразы.
Представьте, что мой movie_ngrams_df имеет 2 значения в 2 столбцах.
1) Слово «любовь» в столбце a (ngram_wordphrase) и «один» в столбце b (ngram_group)
2) Фраза «слишком длинный» в столбцах a и «two»в столбце b
Я думаю, что функция, которая использует цикл и вызов .contains()
, будет работать, но, похоже, не может обернуть это вокруг себя.
Это как-то такхочу, чтобы это работало.
def ngram_lookup (ngram,reviews):
appended_df = pd.concat(for word in ngram:
reviews_df[reviews_df['reviews'].str.contains('ngram')])
return appended_df
Мне нужна функция, которая будет искать каждый текст рецензии на фильм в movie_review_df и извлекать рецензии, содержащие слово «любовь».Я хочу, чтобы вывод был новым df (ngram_detail_df), где каждая представленная строка содержит слово_фраза (например, love в столбце a), а затем полный обзор отдельной строки (помещен в столбец b), который содержит в себе слово «love».Таким образом, каждая word_phrase, вероятно, будет указана несколько раз в столбце a.
ТОГДА (вы знали, что это происходит), я хочу иметь возможность сделать то же самое для следующей фразы word_phrase в нашем movie_ngrams_df, которая была «слишком длинной».Я хочу добавить эти новые «слишком длинные» результаты к результатам, возвращаемым из нашего «любовного» поиска, чтобы в конце у нас был только один df, содержащий верхние word_phrases и каждый просмотр фильма, где присутствует это слово / word_phrase.