首页 > 解决方案 > 匹配 2 个不同数据帧但长度不同的列值

问题描述

检查数据集图像

我有 TOTAL 2 个数据集,其中 dataset1 具有大约 40 个条目的 PATIENTID 列,另一个 dataset2 具有大约 700 个条目的相同 PATIENTID

我想检查 dataset1 的 PATIENTID 是否存在于 dataset2 中。

我在 Python Jupyter notebook 中尝试过,但它无法通过 Python 代码工作。

PatientsNotTreated=unique(Datase1.PatientID)[!unique(Dataset1.PatientID) in unique(Dataset2.PatientID)]
PatientsNotTreated

我收到错误:

PatientsNotTreated=unique(Datase1.PatientID)[!unique(Dataset1.PatientID) in unique(Dataset2.PatientID)]
                                                     ^
    SyntaxError: invalid syntax

我希望输出 daTASET2 中不存在的患者 ID

标签: pythonpandas

解决方案


使用Series.isin使用DataFrame.loc创建布尔索引。最后使用Series.unique

arr_out=Dataset1.loc[~Dataset1['PatientID'].isin(Dataset2['PatientID']),'PatientID'].unique()

arr_in=Dataset1.loc[Dataset1['PatientID'].isin(Dataset2['PatientID']),'PatientID'].unique()

根据患者使用过滤 dataset1:

Dataset1_filtered=Dataset1.loc[~Dataset1['PatientID'].isin(Dataset2['PatientID'])]

推荐阅读