In [2]:
left = pd.DataFrame({'key': ['a', 'b', 'c'],
                     'value': [1, 2, 3]})
left
Out[2]:
key value
0 a 1
1 b 2
2 c 3
In [3]:
right = pd.DataFrame({'key': ['a', 'b', 'd'],
                      'value': [1, 2, 4]})
right
Out[3]:
key value
0 a 1
1 b 2
2 d 4
In [4]:
left.merge(right, on=['key'], how='left')
Out[4]:
key value_x value_y
0 a 1 1.0
1 b 2 2.0
2 c 3 NaN
In [5]:
left.join(right.set_index('key'), on=['key'],
          lsuffix='_x', rsuffix='_y')
Out[5]:
key value_x value_y
0 a 1 1.0
1 b 2 2.0
2 c 3 NaN