pandas
DataFrames
,因此我需要使用此方法。
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
答案 0 :(得分:20)
尝试使用merge
:
In [14]: right
Out[14]:
ST_NAME value2
0 Oregon 6.218
1 Nebraska 0.001
In [15]: merge(left, right)
Out[15]:
ST_NAME value value2
0 Nebraska 2.491 0.001
1 Oregon 4.685 6.218
In [18]: merge(left, right, on='ST_NAME', sort=False)
Out[18]:
ST_NAME value value2
0 Oregon 4.685 6.218
1 Nebraska 2.491 0.001
DataFrame.join
是一种遗留方法,显然不会进行列间连接(最初它使用on参数对列进行索引,因此称为“遗留”标记)。
答案 1 :(得分:1)
我可以确认,Pandas的加入方法有问题。在我的情况下,两个键都是长字符串(18个字符),结果好像熊猫只匹配前几个字符。合并功能正常工作。请不要使用连接功能,应将其真正从可用方法中删除,否则可能会浪费很多时间。