熊猫:循环列表并从列中的列表中查找单词...使用列表中的找到的单词创建新列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了熊猫:循环列表并从列中的列表中查找单词...使用列表中的找到的单词创建新列相关的知识,希望对你有一定的参考价值。
我有一个列表如下:
list = ['dog','cat',horse','bird']
我在下面有一个示例数据框。我想让我的代码说:如果TEXT在列表中包含一个单词,那么创建一个名为EXTRACT的新列,它会选出关键词并将它们放入新列中。
ID TEXT
1 hello you person
2 you have a dog
3 the bird flew
4 the horse is here
5 bird bird bird
以下是我想要的数据帧:
ID TEXT EXTRACT
1 hello you person
2 you have a dog dog
3 the bird flew bird
4 the horse is here horse
5 bird bird bird bird
我知道使用以下语法执行此操作的非有效方法:如果在TEXT列中的单词,则将该单词放在新列中。但我真正的数据框有一个很长的单词列表,上面的方法太繁琐了。
答案
您可以尝试使用df.apply并设置交集以查看文本列和单词列表中显示的单词。
您需要考虑当文本列中出现多个单词时应该发生什么
def word_finder(x):
df_words = set(x.split(' '))
extract_words = word_set.intersection(df_words)
return ', '.join(extract_words)
df = pd.DataFrame(data = {'text' : ['hello you person', 'you have a dog', 'the bird flew', 'the horse is here', 'bird bird bird', 'dog and cat']})
word_set = {'dog', 'cat', 'horse', 'bird'}
df['extract'] = df.text.apply(word_finder)
产量
text extract
0 hello you person
1 you have a dog dog
2 the bird flew bird
3 the horse is here horse
4 bird bird bird bird
5 dog and cat dog, cat
以上是关于熊猫:循环列表并从列中的列表中查找单词...使用列表中的找到的单词创建新列的主要内容,如果未能解决你的问题,请参考以下文章
需要使用 pandas.str() 使用字符串列表从列中选择值 [重复]