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

python Keyword matching(keyword list - column)

假定的数据集,

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

我有像

这样的关键字列表
[apple, banana]

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

*我的意思是匹配是 'Value'

列表中的关键字

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

最终,我想知道的是 'Finding match rate between keywords and columns' 百分比,如果可以的话,过滤数据框

谢谢。

编辑

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

例如,

Ilikeapplethanbananaandorange

所以如果使用关键字-关键字匹配(1:1)是行不通的。

使用 str.contains 将单词与您的句子匹配:

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'

所以在正则表达式中我们现在有语句:

match rows where the sentence contains "apple" OR "banana"