如何用Python实现Excel两列单词匹配并删除匹配内容提取剩余文本
Python 实现Excel两列匹配删除的方案
依赖安装
执行以下命令安装所需库:pip install pandas openpyxl
实现代码(子字符串匹配)
默认匹配任意出现的子字符串,比如关键词是"科技",会把Names里的"科技有限公司"中的"科技"直接删除:
import pandas as pd # 读取Excel文件,替换为你本地的文件路径 df = pd.read_excel("你的输入文件.xlsx") # 提取Words列所有非空关键词 match_words = df["Words"].dropna().astype(str).tolist() def remove_matched_content(raw_name): if pd.isna(raw_name): return "" result = str(raw_name) for word in match_words: result = result.replace(word, "") # 清理多余空格 return " ".join(result.split()) # 生成处理后的新列 df["处理结果"] = df["Names"].apply(remove_matched_content) # 导出结果到新文件,避免覆盖原文件 df.to_excel("处理完成.xlsx", index=False)
可选:全词匹配版本
如果需要仅匹配独立完整的单词/词组,不会误删包含关键词的长词,可以用正则实现全词匹配:
import pandas as pd import re df = pd.read_excel("你的输入文件.xlsx") match_words = df["Words"].dropna().astype(str).tolist() def remove_matched_content(raw_name): if pd.isna(raw_name): return "" result = str(raw_name) for word in match_words: # 转义关键词中的特殊正则字符 escaped_word = re.escape(word) # \b 匹配单词边界 result = re.sub(rf"\b{escaped_word}\b", "", result) return " ".join(result.split()) df["处理结果"] = df["Names"].apply(remove_matched_content) df.to_excel("处理完成.xlsx", index=False)
注意:如果你的Excel中两列的列名不是
Names和Words,请自行替换代码中的列名和文件路径。
内容的提问来源于stack exchange,提问作者Zion Oyemade
相关产品推荐
相关产品推荐

