我是python的新手,所以如果我错过了明显的内容,我深表歉意。我有一个报纸文章的数据框,其文本存储在df['text']
中。
我想看看每篇文章是否都包含要保留在列表中的特定单词,并将每一个出现的单词附加在新列df['words']
中。
我一直在尝试下面的代码,但是它在新列中返回True / False,而不是单词本身。
list_words = ['apple','banana','orange']
for word in list_words:
df['words'] = df['text'].apply(lambda x: pd.notna(x) and word in x)
有人可以帮我弄清楚如何吗?
答案 0 :(得分:0)
def find_word(text):
temp=[]
for word in list_words:
if word in text:
temp.append(word)
return temp
df['words']=df['text'].apply(find_word)
答案 1 :(得分:0)
我的一个朋友使用正则表达式为我提供了完美的答案:
def get_words(text):
words_found = []
for word in list_words:
if re.search(word, text):
words_found.append(word)
else:
continue
return words_found
df['words'] = df['document'].apply(get_words)