检查所有ID是不是都存在于另一个数据集中[重复]
Posted
技术标签:
【中文标题】检查所有ID是不是都存在于另一个数据集中[重复]【英文标题】:check if all IDs are present in another dataset or not [duplicate]检查所有ID是否都存在于另一个数据集中[重复] 【发布时间】:2021-11-08 20:26:30 【问题描述】:我有一个看起来像这样的 df1:
ParentID Name
12 kids
29 jdö
第二个 df2 如下所示:
ParentID Location
34 56789
12 5608
我想检查 df1 中的所有 parentID 是否都存在于 df2 中。如果没有,我想将它们提取到一个新的 df 中,例如:
ParentID Name
29 jdö
我相信可以使用联接,但我不确定如何使用
result = left.join(right, on=["key1", "key2"], how="inner")
【问题讨论】:
pd.merge
有 indicator
参数。
您可以像df1[~df1['ParentID'].isin(df2['ParentID'])]
一样使用NOT IN
,或者如果要按照其他cmets 和答案的指示进行合并,请检查指示器。 merge indicator answer 或 isin answer
【参考方案1】:
使用indicator=
参数,然后过滤第一个数据框:
x = df1[df1.merge(df2, how="left", indicator=True)._merge.eq("left_only")]
print(x)
打印:
ParentID Name
1 29 jdö
【讨论】:
我认为这不准确。因为它会打印某些 parentID,当我在第二个数据集中手动检查它们时,它们就存在以上是关于检查所有ID是不是都存在于另一个数据集中[重复]的主要内容,如果未能解决你的问题,请参考以下文章
检查Table1中的字段组合是不是存在于另一个Table2中(SQL)