如何在不同pandas DataFrame中匹配关键词并为父DF新增匹配结果列
实现方案
- 第一步:提取所有待匹配关键词,对关键词中的正则特殊字符做转义,避免匹配出错
- 第二步:基于关键词列表构建正则匹配模式,可根据需求选择是否开启大小写不敏感匹配
- 第三步:遍历父DataFrame的
Description列,提取所有命中的关键词存入新增的Keywords列
import pandas as pd import re # 提取关键词列表并转义特殊字符 keywords_list = [re.escape(keyword) for keyword in df_keywords['Keywords to Search'].tolist()] # 构建正则匹配规则,若不需要忽略大小写可删除 flags=re.IGNORECASE 参数 match_pattern = re.compile('|'.join(keywords_list), flags=re.IGNORECASE) # 匹配并生成新列,将代码中「父df」替换为你的父DataFrame实际变量名即可 父df['Keywords'] = 父df['Description'].apply( lambda desc: ', '.join(match_pattern.findall(desc)) if match_pattern.search(desc) else '' )
若需完全匹配整词而非子字符串,可将正则规则调整为
r'\b(' + '|'.join(keywords_list) + r')\b',即可避免关键词作为其他单词的一部分被误匹配。
内容的提问来源于stack exchange,提问作者Ritesh Kankonkar
相关产品推荐
相关产品推荐

