我有一个数据帧,它是从另一个数据帧中删除重复项的结果集。
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
答案 0 :(得分:3)
您不需要设置索引并以此方式获取欺骗。您可以使用duplicated
来获取布尔数组,并使用该数据框屏蔽change
数据帧。
keep=False
参数将识别所有重复项。这与其他选项不同,后者不会将第一个或最后一个标识为重复。
duplicated = changes.duplicated(
subset=['Employee ID', 'Benefit Plan Type'], keep=False)
dupe_accts = changes[duplicated]