我要合并两个数据帧,如下所示:
left:
A B C D E F G H
1 2 3 4 5 6 7 h
5 2 3 4 NaN NaN NaN NaN
1 2 4 4 NaN NaN NaN NaN
right:
E F G H
1 2 g h2
我想做:
merge=pd.merge(left=left,right=right,left_on=['A','B'], right_on=['E','F'],how='left')
但是我想要看起来像这样的东西:
A B C D E F G H
1 2 3 4 5 6 7 h
1 2 3 4 1 2 g h2
5 2 3 4 NaN NaN NaN NaN
1 2 4 4 1 2 g h2
有什么想法可以达到预期的效果吗?
非常感谢!
答案 0 :(得分:0)
您可能需要考虑update
left=left.set_index(['A','B'])
right.index=pd.MultiIndex.from_arrays([right['E'],right['F']])
left.update(right)
left.reset_index(inplace=True)
left
Out[274]:
A B C D E F G H
0 1 2 3 4 1.0 2.0 g h2
1 5 2 3 4 NaN NaN NaN NaN
2 1 2 4 4 1.0 2.0 g h2