python关键字匹配(关键字列表-列)

问题描述 投票:0回答:1

所需的数据集,

    Name    Value
0   K   Ieatapple
1   Y   bananaisdelicious
2   B   orangelikesomething 
3   Q   bluegrape
4   C   appleislike

而且我有类似的关键字列表

[apple, banana]

在此数据集中,匹配列'值'-[关键字列表]

*我的意思是匹配是'值'中的列表中的关键字

我想看看列表中的关键字如何匹配列,所以..我想找出匹配率是多少。

最终,我想知道的是“查找关键字和列之间的匹配率”百分比,如果可以的话,过滤数据框

谢谢。

编辑

在我的真实数据集中,句子中有关键字,

Ex,

Ilikeapplethanbananaandorange

因此,如果使用关键字-关键字匹配(1:1),则无效。

python pandas dataframe match keyword
1个回答
1
投票
keywords = ['apple', 'banana'] df['Value'].str.contains("|".join(keywords)).sum() / len(df) # 0.6

或者如果您想保留行:


df[df['Value'].str.contains("|".join(keywords))]

  Name                Value
0    K          I eat apple
1    Y  banana is delicious
4    C          appleislike


更多详细信息

管道|是正则表达式中的or运算符:

因此,我们使用管道将单词列表与这些单词之一匹配:

>>> keywords = ['apple', 'banana'] >>> "|".join(keywords) 'apple|banana'

因此在正则表达式中,我们现在有语句:

匹配句子中包含“苹果”或“香蕉”的行]]
© www.soinside.com 2019 - 2024. All rights reserved.