我有两个数据帧
DF1
Context
DF2
x y z
0 0 0
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
我要合并这两个数据帧,以更新数据帧1
结果应该是
x y z
1 1 10
4 4 20
我使用:
x y z
0 0 0
1 1 10
2 2 2
3 3 3
4 4 20
5 5 5
我得到的
pd.concat([df1,df2], sort=False).drop_duplicates(['x'],keep='last')
有什么办法可以使用内置的熊猫方法来获得这个?
答案 0 :(得分:1)
您需要保留merge
,ffill
和drop
多余的列
df1.merge(df2, on=['x','y'], how='left', suffixes=['_1','']).ffill(1).drop('z_1',1).astype(int)
Out[104]:
x y z
0 0 0 0
1 1 1 10
2 2 2 2
3 3 3 3
4 4 4 20
5 5 5 5