数据框搜索单词并将其添加到新列中,然后遍历单词列表

时间:2020-06-19 15:54:03

标签: python dataframe append apply

我是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)

有人可以帮我弄清楚如何吗?

2 个答案:

答案 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)