Python移除DataFrame变量中的指定大小写不敏感称谓词求助
移除DataFrame中Name列的特定称谓词解决方案
步骤1:导入依赖并构造示例DataFrame
import pandas as pd # 构造示例数据 data = { 'Name': [ 'professor Rick Smith', 'Mark M. Tarleton', 'Doctor Charles M. Alexander', 'Professor doctor Todd Mckenzie', 'Carl L. Darla', 'Honorable Billy Darlington' ] } df = pd.DataFrame(data)
步骤2:编写处理逻辑
利用正则表达式匹配并移除所有目标称谓(不区分大小写),同时清理多余空格:
import re # 定义需要移除的称谓列表 titles_to_remove = ['doctor', 'honorable', 'professor'] # 构建正则匹配模式:匹配完整单词,支持多选 pattern = r'\b(' + '|'.join(titles_to_remove) + r')\b' # 执行替换并清理空格 df['Name'] = df['Name'].str.replace(pattern, '', flags=re.IGNORECASE) \ .str.replace(r'\s+', ' ') \ .str.strip()
处理结果
执行后df的Name列将变为:
| Name |
|---|
| Rick Smith |
| Mark M. Tarleton |
| Charles M. Alexander |
| Todd Mckenzie |
| Carl L. Darla |
| Billy Darlington |
关键说明
\b用于匹配单词边界,确保只移除完整的称谓词,避免误删包含这些词片段的名字flags=re.IGNORECASE实现不区分大小写的匹配,覆盖大小写混合的情况- 后续的空格清理操作解决了移除称谓后可能出现的多空格、首尾空格问题
内容的提问来源于stack exchange,提问作者user19745533
相关产品推荐
相关产品推荐

