I have two tables and I would like to append them so that only all the data in table A is retained and data from table B is only added if its key is unique (Key values are u
indicator = True in merge command will tell you which join was applied by creating new column _merge with three possible values:
left_onlyright_onlybothKeep right_only and left_only. That is it.
outer_join = TableA.merge(TableB, how = 'outer', indicator = True)
anti_join = outer_join[~(outer_join._merge == 'both')].drop('_merge', axis = 1)
easy!
Here is a comparison with a solution from piRSquared:
1) When run on this example matching based on one column, piRSquared's solution is faster.
2) But it only works for matching on one column. If you want to match on several columns - my solution works just as fine as with one column.
So it's up for you to decide.