我有两个不同长度的熊猫数据框,当两列匹配时,我需要有条件地覆盖从一个到另一个的值。有条件地加入多个索引的熊猫DF
df1.val = df2.val where df1.val == null and df1.key1 == df2.key1 and df1.key2 == df2.key2
df1
和df2
具有非常不同的组列和行的长度,保存为key1
,key2
和val
。唯一可以保证的是,df1
中的每(key1, key2)
,df2
中只有一个(key1, key2)
。
到目前为止,我一直走下去的
df1.loc[df1.val.isnull(), "val"] = df2.val
尝试设置指标相匹配的路径,但我还没有在任何地方得到。
我知道这里有一些加入项目,但是我还没有在这方面取得任何进展。一些语法帮助将不胜感激。
编辑数据:
DF1:
First Last Val Random1 ...
John Smith 4 x
Todd Smith 5 Nan
John Todd Nan z
DF2:
First Last Val Random2 ...
John Smith 7 4
Todd Smith 6 9
John Todd 3 3
Eric Smith 5 2
结果:
First Last Val Random1 ...OtherDF1Cols...
John Smith 4 x
Todd Smith 5 Nan
John Todd 3 z
你可以添加一些数据样本的选择吗? – jezrael