簡體   English   中英

如果其他兩個列在Pandas中具有匹配的值,如何用另一個數據框的值填充空列的值?

[英]How to fill empty column values with another dataframe's value if two other columns have matching values in Pandas?

我有兩個類似的數據框。 如果df1['PartNumber']df2['PartNumber']匹配,我想用df1['Material']的值填充df2['Material'] 我可以用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

你可以做 :

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM