I am new to pandas and can\'t seem to get this to work with merge function:
>>> left >>> right
a b c a c d
0 1 4
One way to do this is to set the a column as the index and update:
In [11]: left_a = left.set_index('a')
In [12]: right_a = right.set_index('a')
Note: update only does a left join (not merges), so as well as set_index you also need to include the additional columns not present in left_a.
In [13]: res = left_a.reindex(columns=left_a.columns.union(right_a.columns))
In [14]: res.update(right_a)
In [15]: res.reset_index(inplace=True)
In [16]: res
Out[16]:
a b c d
0 1 4 7 13
1 2 5 8 14
2 3 6 9 15
3 4 7 12 NaN