Python 3.x 左连接替换列值
我想用两个数据帧进行左连接:d1和d2。但是,在连接之后,我希望一列值替换另一列中的空值。以下是我的数据集: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
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个空格,如果复制一些文本,我可以帮助您。