gpt4 book ai didi

python - 使用 str.contains 查看列表中的哪些单词在每个项目中

转载 作者:行者123 更新时间:2023-12-02 16:47:20 25 4
gpt4 key购买 nike

我正在尝试提取在 str.contains() 搜索中找到的单词,如下图所示(但使用 pandas 和 str.contains,而不是 VBA ).我正在尝试在 VBA 结果列中重新创建输出。

enter image description here

如果在每条评论中找到这些词,我会用它简单地告诉我:

searchfor = list(terms['term'])
found = [reviews['review_trimmed'].str.contains(x) for x in searchfor]
result = pd.DataFrame(found)

这很棒,因为我知道哪些评论有我正在寻找的术语,但我不知道它为每个评论找到了哪些术语。我希望我的回答利用 str.contains 来保持一致性。

最佳答案

使用 Grzegorz Skibinski 的设置

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()

df

review_trimmed
0 dog and cat
1 Cat chases mouse
2 horrible thing
3 noodle soup
4 chilli
5 pizza is Good

_____________________________________________________________

解决方案(pandas.Series.str.findall)

  • 使用 '|'.join 将所有搜索到的项目组合成一个正则表达式字符串,用于搜索任何项目。
  • 使用 flag=2 这意味着 IGNORECASE

df.review_trimmed.str.findall('|'.join(searchfor), 2)

0 [dog, cat]
1 [Cat]
2 [horrible]
3 [soup]
4 []
5 [Good]
Name: review_trimmed, dtype: object

我们可以像这样用';'join他们:

df.review_trimmed.str.findall('|'.join(searchfor), 2).str.join(';')

0 dog;cat
1 Cat
2 horrible
3 soup
4
5 Good
Name: review_trimmed, dtype: object

关于python - 使用 str.contains 查看列表中的哪些单词在每个项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59973074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com