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"
假定的数据集,
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"