检查所有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.mergeindicator 参数。 您可以像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是不是都存在于另一个数据集中[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 lodash 检查数组是不是存在于另一个数组中

检查Table1中的字段组合是不是存在于另一个Table2中(SQL)

检查 div 内容是不是已经存在于另一个 div 中?

检查一列中的值是不是存在于另一列中,如果存在,则将另一列中的值复制到新列中

检查一个列表元素中的元素是不是存在于另一个列表中

检查日期是不是已存在于另一个时间段中