在无法合并时添加基于另一个数据框的列

Adding a column based on another dataframe when merging is not possible

我的第一个数据框(相同的 nameobject 可能出现多次):

df_1=
     name      object     number1      number2 
0      n1          o1         0.0          1.0
1      n1          o2         1.0          1.0
2      n2          o1         0.0          1.0
3      n3          o3         1.0          0.0
...

我的第二个数据框可能不包含第一个数据框中出现的所有 objects

df_2=
     value1     value2      number3      object   
0     90.10      40.15          Yes          o1        
1     80.30      92.16           No          o3        
2     20.57      93.69           No          o4        
3     40.60      94.32          Yes          o5  
...    

我想将 number3 列附加到第一个数据帧,其中 Yes 转换为 1.0No 转换为 0.0,但忽略我们没有关于 object 的任何信息的行。所以它会是:

     name      object     number1      number2     number3
0      n1          o1         0.0          1.0         1.0
1      n2          o1         0.0          1.0         1.0
2      n3          o3         1.0          0.0         0.0
...

我只想进行转换:

df_2.number3.replace(to_replace=['No', 'Yes'], value=[0.0, 1.1])

但是我不能只在 objectmerge,因为它们并不相同。 是否可以搜索 df_2objectsnumber3,附加它,然后删除其余行?

您似乎只想在 object 列上执行 join/merge:

df1.merge(df2,on=['object']).replace(to_replace={'number3':['No', 'Yes']}, value={'number3':[0.0, 1.0]})```