如果其他两个列在Pandas中具有匹配的值,如何用另一个数据框的值填充空列的值?

时间:2019-02-20 15:23:24

标签: python pandas

我有两个相似的数据框。如果df2['Material']df1['Material']匹配,我想用df1['PartNumber']中的值填充df2['PartNumber']。我可以用Pandas(或一般来说是Python)完成此操作吗?数据帧各有几千行,它们仅仅是片段。

df1
    PartNumber      Material    ProgramNo   Machine

114 JEFD0302000 E   304L        O0219       CHNC III
218 REFD0502050 B   6AL-4V      O0295       CHNC III

df2
    PartNumber      ProgramNo     Machine   Material

0   JEFD0302670 A   6109 + 6609   WY-100    NaN
1   JEFD0510820 A   6110 + 6610   WY-100    NaN

2 个答案:

答案 0 :(得分:2)

您可以:

df2['Material']=df2['PartNumber'].map(dict(zip(df1['PartNumber'],df1['Material']))).fillna(df2.Material)

答案 1 :(得分:1)

np.wheremap一起使用

s=df2.PartNumber.map(df1.set_index('PartNumber').Material)    
df2.Material=np.where(df2.PartNumber.isnull(),s,df2.Material)