I like to think I’m not an idiot, but maybe I’m wrong. Can anyone explain to me why this isn’t working? I can achieve the desired results using ‘merge’. But I eventually need to join multiple pandas DataFrames so I need to get this method working.
In [2]: left = pandas.DataFrame({'ST_NAME': ['Oregon', 'Nebraska'], 'value': [4.685, 2.491]})
In [3]: right = pandas.DataFrame({'ST_NAME': ['Oregon', 'Nebraska'], 'value2': [6.218, 0.001]})
In [4]: left.join(right, on='ST_NAME', lsuffix='_left', rsuffix='_right')
Out[4]:
ST_NAME_left value ST_NAME_right value2
0 Oregon 4.685 NaN NaN
1 Nebraska 2.491 NaN NaN
Try using
merge:DataFrame.joinis a bit of legacy method and apparently doesn’t do column-on-column joins (originally it did index on column using the on parameter, hence the “legacy” designation).