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

2024-06-26 03:44:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个相似的数据帧。如果df1['PartNumber']df2['PartNumber']匹配,我想用df1['Material']的值填充df2['Material']。我能用熊猫(或者一般的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

Tags: 数据machinenaniiimaterialdf1df2wy
2条回答

你可以做:

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

map一起使用np.where

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

相关问题 更多 >