pandas concat 但从左侧 df 取重复的键行

pandas concat but take duplicate key rows from left df

希望是一个简单的。我有 2 个 dfs,如下所示。我想用 df2 为 df1 中的任何 PORT、MTH 组合填充空白。我不能只是 concat 和 drop_duplicates 因为值可能不匹配,我想保留我的 df1 条目(如果它存在)。

DF1

MTH,PORT,value
201503,PORT1,0.302
201504,PORT1,0.231
201505,PORT1,0.833
201502,PORT2,0.35
201503,PORT2,0.734
201504,PORT2,0.755
201505,PORT2,0.257

DF2

MTH,PORT,value
201501,PORT1,0.4033
201502,PORT1,0.2733
201503,PORT1,0.1412
201501,PORT2,0.324
201502,PORT2,0.6593
201503,PORT2,0.276

所以对于上面的内容,我想创建 1 个 df 并且对于 PORT1 有来自 DF2 的 201501 和 201502 条目,因为 DF1 没有它们,但保留其余的 DF1 PORT 条目。对于 PORT2,我们只需引入 201501 条目。

换言之,它是一个连接,但如果键 (mth,port) 重复,则从左边的 df 开始。

提前致谢

预期输出

MTH,PORT,value
201501,PORT1,0.4033
201502,PORT1,0.2733
201503,PORT1,0.302
201504,PORT1,0.231
201505,PORT1,0.833
201501,PORT2,0.324
201502,PORT2,0.35
201503,PORT2,0.734
201504,PORT2,0.755
201505,PORT2,0.257

让我们试试

df=pd.concat([df1,df2]).drop_duplicates(['MTH','PORT'])