如何从一个数据帧获取行(如果值位于另一个数据帧中)
问题描述:
我有一个数据帧是从另一个数据帧中删除重复数据的结果集。如何从一个数据帧获取行(如果值位于另一个数据帧中)
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]
这是完美的。谢谢 –