我有以下格式的数据。
我想从“诊断”列中提取代码,并将每个代码粘贴到“诊断”列之后的单独列中。我知道使用正则表达式来匹配它是
[A-TV-Z] [0-9] [0-9AB]。?[0-9A-TV-Z] {0,4}
source: https://www.johndcook.com/blog/2019/05/05/regex_icd_codes/
这些被称为ICD10代码,如Z01.2,E11等表示。上述表达式旨在匹配所有ICD10代码。
但是我不确定如何在python代码中使用此表达式来完成上述任务。
我要解决的问题是?
- 计算分配给所有患者的代码总数?
- 计数分配的唯一代码总数(由于多个患者可能分配了相同的代码)
- 明智地生成数据-即,如果我选择代码Z01.2,我想提取已分配了此代码的患者数据(可能是PATID,移动电话号码或其他任何列或全部)。
提前致谢。
如下使用Python Pandas。
以制表符分隔的CSV格式导入数据
产生的DataFrame df
使用指定模式从DIAGNOSIS列中提取
在之前添加转义字符。否则,它将是一个通配符并匹配任何字符(所提供的数据没有区别)。
df ['CODES']列中的每一行都是代码列表
将长度列添加到df DataFrame
df ['Length']-对应于每个代码列表的长度
使用的总代码数-超过代码长度的总和
总代码:17
使用的所有代码-连接所有代码列表
','E11','E78.5','I10','E55','E79.0','Z24.0','Z01.2']
数:17
使用的唯一代码-获取所有代码列表的set()
10.0”,“ E55”,“ E78.5”,“ Z20.9”,“ C50”}
按代码选择患者(即Z01.2)
显示这些患者的PATIE,PATIENT_NAME和MOBILE_NUMBER
结果