如何从一个数据帧获取行(如果值位于另一个数据帧中)

问题描述:

我有一个数据帧是从另一个数据帧中删除重复数据的结果集。如何从一个数据帧获取行(如果值位于另一个数据帧中)

changes = full_set.drop_duplicates(subset=['Employee ID', 'Benefit Plan Type', 'Sum of Premium'], keep='last') 

然后,我有另一个其中ID和计划类型仍然列出了两次

dupe_accts = changes.set_index(['Employee ID', 'Benefit Plan Type']).index.get_duplicates() 

我试图现在要做的是有第三个数据帧,如果ID和计划类型是将在

dupe_accts 

它会输出

changes 

到一个新的数据帧

到目前为止,我有

dupes = changes[['Employee ID', 'Benefit Plan Type']].isin(dupe_accts) 

但这输出

False False 
False False 
False False 
False False 
False False 

你并不需要设置索引,并获得愚弄的方式。你可以使用duplicated来得到一个布尔数组,并用它掩盖change数据帧。

keep=False参数将识别所有重复项。这与其他选项不同,它不会将第一个或最后一个确定为重复。

duplicated = changes.duplicated(
    subset=['Employee ID', 'Benefit Plan Type'], keep=False) 
dupe_accts = changes[duplicated] 
+0

这是完美的。谢谢 –