我有两个表,我想附加它们,以便只有表A中的所有数据被保留,并且只有表B中的数据的键是唯一的(表A和表B中的键值是唯一的,但是在某些情况下,表A和表B中都会出现键)。
我认为这样做的方法将涉及某种过滤连接(反连接),以获取表B中不在表A中的值,然后追加这两个表。
我对R很熟悉,这是我在R中用来做这件事的代码
library("dplyr")
## Filtering join to remove values already in "TableA" from "TableB"
FilteredTableB <- anti_join(TableB,TableA, by = "Key")
## append "FilteredTableB" to "TableA"
CombinedTable <- bind_rows(TableA,FilteredTableB)
我如何在python中实现这一点?
我也有同样的问题。This answer使用merge的
how='outer'
和indicator=True
激发了我想出这个解决方案:打印此输出:
merge
命令中的indicator = True
将通过创建具有三个可能值的新列_merge
来告诉您应用了哪个联接:left_only
right_only
both
您需要取
right_only
并将其追加回第一个表。就这样。在使用后不要忘记删除
_merge
列。别紧张!
考虑以下数据帧
这是做你想做的事的一种方法
方法1
方法2
计时
4行,2个重叠
方法1要快得多
10000行5000重叠
循环不正确
相关问题 更多 >
编程相关推荐