考虑两个数据帧:
>>> X = pd.DataFrame(np.arange(0,12).reshape(4,3),columns=['a','b','c'])
>>> X
a b c
0 0 1 2
1 3 4 5
2 6 7 8
3 9 10 11
>>>
>>> Y = pd.DataFrame(np.array([['abc',22],['fgh',44],['ijk',0],['xee',99],['RGD',3]]),columns = ['x','y'])
>>> Y
x y
0 abc 22
1 fgh 44
2 ijk 0
3 xee 99
4 RGD 3
我想把这两个数据帧连接起来,这样我就能得到结果
^{pr2}$我试过以下方法:
>>> X.loc[X['a'].astype(str).isin(Y['y']),'a']=Y[Y['y'].astype(str).isin(X['a'])]
>>> X
a b c
0 nan 1 2
1 nan 4 5
2 6.00 7 8
3 9.00 10 11
我想这是在一个索引一个索引地匹配它们,给我一个nan。我也试过加入X和Y,但没能成功。我认为合并这两个数据帧是可行的,但我不知道如何在列'a'和'y'上适当地合并它们
如有任何提示,我们将不胜感激
可以使用
map
将X
中的a
替换为Y
中的x
,否则保留原始值:使用merge的另一个选项(我更正了
^{pr2}$Y
中的数据类型,即假设y列是float而不是string):然后对
x
和a
列进行合并得到:然后根据您的需要,您可以将}组合在一起,或者让它们保持原样,我认为这实际上更合理:
a
和{要合并a列和x列,只需执行以下操作:
这将产生与第一个选项相同的结果。在
相关问题 更多 >
编程相关推荐