如何删除数据框同一行内的重复ICD编码值
移除诊断名称中的ICD编码
原始数据
| en | ko |
|---|---|
| Fetishistic transvestism(F65.1) | 물품음란성 의상도착증(F65.1) |
| Obsessive-compulsive disorder(F42.-) | 강박장애(F42.-) |
| Conduct disorders(F91.-) | 행동장애(F91.-) |
| Schizophrenia(F20.-) | 조현병(F20.-) |
需求说明
移除数据中每个诊断名称后括号内的ICD编码,仅保留纯诊断名称文本,处理后预期效果如下:
预期结果
| en | ko |
|---|---|
| Fetishistic transvestism | 물품음란성 의상도착증 |
| Obsessive-compulsive disorder | 강박장애 |
| Conduct disorders | 행동장애 |
| Schizophrenia | 조현병 |
实现方案(Python Pandas)
使用正则表达式匹配并移除括号及内部内容:
import pandas as pd # 构建原始数据框 df = pd.DataFrame({ 'en': [ 'Fetishistic transvestism(F65.1)', 'Obsessive-compulsive disorder(F42.-)', 'Conduct disorders(F91.-)', 'Schizophrenia(F20.-)' ], 'ko': [ '물품음란성 의상도착증(F65.1)', '강박장애(F42.-)', '행동장애(F91.-)', '조현병(F20.-)' ] }) # 批量处理两列,移除括号及编码 df[['en', 'ko']] = df[['en', 'ko']].apply(lambda col: col.str.replace(r'\(.*?\)', '', regex=True).str.strip()) # 查看处理后的数据 print(df)
代码说明
r'\(.*?\)':正则表达式匹配以(开头、)结尾的任意内容(非贪婪模式,确保只匹配最近的一对括号)str.replace:替换匹配到的内容为空字符串str.strip():去除替换后可能残留的首尾空格
内容的提问来源于stack exchange,提问作者이승우
相关产品推荐
相关产品推荐

