如果值在另一个数据帧中,如何从一个数据帧获取行

时间:2017-04-04 21:21:01

标签: python python-2.7 pandas dataframe

我有一个数据帧,它是从另一个数据帧中删除重复项的结果集。

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

1 个答案:

答案 0 :(得分:3)

您不需要设置索引并以此方式获取欺骗。您可以使用duplicated来获取布尔数组,并使用该数据框屏蔽change数据帧。

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

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