python - 使用 str.contians 查看列表中的哪些单词在每个项目中
问题描述
我正在尝试提取在str.contains()
搜索中找到的单词,如下图所示(但使用 pandas 和str.contains
,而不是 VBA)。我正在尝试在 VBA 结果列中重新创建输出。
以下是我用来简单地告诉我是否在每条评论中找到这些词的方法:
searchfor = list(terms['term'])
found = [reviews['review_trimmed'].str.contains(x) for x in searchfor]
result = pd.DataFrame(found)
这很好,因为我知道哪些评论有我正在寻找的条款,但我不知道它为每个评论找到了哪些条款。我希望我的答案能够str.contains
保持一致性。
解决方案
使用numpy
:
searchfor=[wrd.lower() for wrd in searchfor]
searchfor=set(searchfor)
df["found"]=np.bitwise_and(df["review_trimmed"].str.lower().str.split("[^\w+]").map(set), searchfor)
为了显示输出,我使用了虚拟数据:
import pandas as pd
import numpy as np
df=pd.DataFrame({"review_trimmed": ["dog and cat", "Cat chases mouse", "horrible thing", "noodle soup", "chilli", "pizza is Good"]})
searchfor="yes cat Dog soup good bad horrible".split(" ")
searchfor=[wrd.lower() for wrd in searchfor]
searchfor=set(searchfor)
df["found"]=np.bitwise_and(df["review_trimmed"].str.lower().str.split("[^\w+]").map(set), searchfor)
print(searchfor)
print(df)
输出:
#searchfor:
{'cat', 'good', 'yes', 'dog', 'bad', 'horrible', 'soup'}
#df:
review_trimmed found
0 dog and cat {cat, dog}
1 Cat chases mouse {cat}
2 horrible thing {horrible}
3 noodle soup {soup}
4 chilli {}
5 pizza is Good {good}
编辑
IIUC - 只需添加.str.join(";")
searchfor=[wrd.lower() for wrd in searchfor]
searchfor=set(searchfor)
df["found"]=np.bitwise_and(df["review_trimmed"].str.lower().str.split("[^\w+]").map(set), searchfor).str.join(";")
print(searchfor)
print(df)
输出:
{'dog', 'soup', 'cat', 'bad', 'good', 'yes', 'horrible'}
review_trimmed found
0 dog and cat dog;cat
1 Cat chases mouse cat
2 horrible thing horrible
3 noodle soup soup
4 chilli
5 pizza is Good good
推荐阅读
- selenium - Frames not switching by index number
- excel - Only allow numbers to be put in textbox if another texbox is >0
- java - OpenShift build error : Unable to import child module class in parent module of multi module Maven Spring boot project
- c# - 你将如何存储这些数据
- latex - 如何将 Latex 表插入 bookdown rmd 文件
- python - 将多个目标文档与多个源文档进行比较
- c# - 将 api datetime 绑定到 angular 6 datepicker
- android - 如何从其他文件 Dart 调用 setState
- javascript - 不一致的 addEventListerner 行为角度 7
- c# - ntdll.dll 中的 UWP 崩溃