You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用正则表达式提取皮肤科与风湿科相关字符串?

正则提取修正方案

问题分析

原代码存在以下问题:

  • 正则错误使用逗号分隔两个目标模式,但实际数据中两类词汇不会同时出现在同一条记录里
  • 未覆盖所有相关词汇(比如Rheumathology、RHeums)
  • 未用命名捕获组,导致后续列名映射混乱

正确实现代码

import re
import pandas as pd

# 模拟输入数据
data = {
    'Event Name': [
        'Taltz Seminar for Dermathologists',
        'Experiment Results for Taltz',
        'Use of Taltz in Rheumathology',
        'RHeums Experiences with Taltz'
    ]
}
df = pd.DataFrame(data)

# 修正后的正则:用命名捕获组分别匹配两类目标词汇
pattern = r'(?P<dermatological>Dermathologists)|(?P<rheumatological>Rheumathology|RHeums)'
df_clean = df['Event Name'].str.extract(pattern, flags=re.I)

# 可选:空值填充,根据需求调整
df_clean = df_clean.fillna('')

print(df_clean.head())

代码说明

  • (?P<dermatological>Dermathologists):命名捕获组,匹配皮肤科相关词汇,re.I忽略大小写
  • (?P<rheumatological>Rheumathology|RHeums):命名捕获组,匹配风湿科相关的两类词汇
  • 用|分隔两个组,表示匹配任意一种情况,每条记录会提取对应类别的词汇,无匹配则为空
  • 直接通过命名捕获组生成目标列名,无需额外的reindex操作

执行后输出结果:

dermatological rheumatological
0  Dermathologists                
1                                 
2                  Rheumathology
3                      RHeums

内容的提问来源于stack exchange,提问作者jacky789

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 20:45:57