Python 3.x 左连接替换列值

Python 3.x 左连接替换列值,python-3.x,pandas,Python 3.x,Pandas,我想用两个数据帧进行左连接:d1和d2。但是,在连接之后,我希望一列值替换另一列中的空值。以下是我的数据集: vehicle_type vehicle_id sales margin a 11 200 0.1 b 22 150 0.2 c NaN

我想用两个数据帧进行左连接:d1和d2。但是,在连接之后,我希望一列值替换另一列中的空值。以下是我的数据集:

 vehicle_type     vehicle_id       sales       margin   
           a            11         200          0.1
           b            22         150          0.2      
           c           NaN        NaN         NaN      
           d           NaN        NaN         NaN          

vehicle_type     vehicle_id       sales       alignment        
           c           33        210             x      
           d           44        300             y  
我希望最终结果如下所示,其中左连接将替换D1中的空车辆ID和销售:

 vehicle_type     vehicle_id       sales       margin     alignment  
           a            11         200          0.1         NaN
           b            22         150          0.2         NaN
           c            33         210          NaN         x
           d            44         300          NaN         y
我正在使用以下代码,但它不起作用:

D3 = D1.merge(D2, on='vehicle_type',how='left')
用于按
车辆类型正确对齐数据框
列:

df3 = (df1.set_index('vehicle_type')
          .combine_first(df2.set_index('vehicle_type'))
          .reset_index())
print (df3)
  vehicle_type alignment  margin  sales  vehicle_id
0            a       NaN     0.1  200.0        11.0
1            b       NaN     0.2  150.0        22.0
2            c         x     NaN  210.0        33.0
3            d         y     NaN  300.0        44.0
用于按
车辆类型正确对齐数据框
列:

df3 = (df1.set_index('vehicle_type')
          .combine_first(df2.set_index('vehicle_type'))
          .reset_index())
print (df3)
  vehicle_type alignment  margin  sales  vehicle_id
0            a       NaN     0.1  200.0        11.0
1            b       NaN     0.2  150.0        22.0
2            c         x     NaN  210.0        33.0
3            d         y     NaN  300.0        44.0

这太棒了!非常感谢。如果我在D1和D2中有其他不常见的列,它们会否在连接后仍然存在?我想保留它们,即使它们不常见。您可以更改有问题的数据,但以文本格式进行复制吗?我会的。我不能;我找不到在stackoverflow中生成表的方法。这是一本超级手册,编辑过程非常复杂。所以我发了pictures@HamzaKhalid-Ty在之前添加4个空格,如果复制一些文本,我可以帮助您。这太棒了!非常感谢。如果我在D1和D2中有其他不常见的列,它们会否在连接后仍然存在?我想保留它们,即使它们不常见。您可以更改有问题的数据,但以文本格式进行复制吗?我会的。我不能;我找不到在stackoverflow中生成表的方法。这是一本超级手册,编辑过程非常复杂。所以我发了pictures@HamzaKhalid-Ty在前面添加4个空格,如果复制一些文本,我可以帮助您。