我需要根据另一个数据框中的值创建一个分类变量。考虑表 1,其中包含医院就诊和患者 ID。请注意,患者可以多次访问医院:
+----------+------------+
| visit_id | patient_id |
+----------+------------+
| 10 | 1 |
| 20 | 1 |
| 50 | 2 |
| 100 | 3 |
| 110 | 3 |
+----------+------------+
我需要添加一个带有 1 或 0 的新字段,指示患者在医院就诊期间是否接受了阿司匹林,如表 2 所示:
+----------+------------+---------------+
| visit_id | patient_id | medication |
+----------+------------+---------------+
| 10 | 1 | aspirin |
| 10 | 1 | ibuprofin |
| 20 | 1 | codine |
| 50 | 2 | aspirin |
| 100 | 3 | ibuprofin |
| 110 | 3 | acetaminophin |
| 110 | 3 | vicodin |
+----------+------------+---------------+
您可以再次看到多个级别 - 您可以从医生那里获得不止一种药物,对吗?当然,这只是一个例子。
我试图合并表(内连接),这有效......
tab1 = pd.merge(tab1, tab2, on=['visit_id','patient_id'])
tab1['aspirin_index'] = np.where(tab1['medication'].str.contains('aspirin',
flags=re.IGNORECASE, regex=True, na=False),1,0)
...但后来我得到了同时服用阿司匹林和布洛芬的患者 1 的重复结果。我只需要知道他们是否至少服用过一次阿司匹林。
+----------+------------+---------------+
| visit_id | patient_id | aspirin_index |
+----------+------------+---------------+
| 10 | 1 | 1 |
| 10 | 1 | 0 |
+----------+------------+---------------+
我需要到这里...与表 1 相同的形状,但只是使用新索引。
+----------+------------+---------------+
| visit_id | patient_id | aspirin_index |
+----------+------------+---------------+
| 10 | 1 | 1 |
| 20 | 1 | 0 |
| 50 | 2 | 1 |
| 100 | 3 | 0 |
| 110 | 3 | 0 |
+----------+------------+---------------+
相关分类