Home > Software design >  Change Values in Pandas Dataframe
Change Values in Pandas Dataframe

Time:05-28

I have two dataframes. I want to change some of the values.

I know how to change it on a one by one basis, using isin and where statement but I don't know how to change a large list of changes.

df1

 Name      Type
 David     Staff 
 Jones     Pilot
 Jack      Pilot
 Susan     Steward
 John      Staff
 Leroy     Staff
 Steve     Staff

df2

 Name     Type
 David    Captain
 Leroy    Pilot
 Steve    Pilot

How do I change the "type" column on df1 by using df2?

df_desired

 Name      Type
 David     Captain 
 Jones     Pilot
 Jack      Pilot
 Susan     Steward
 John      Staff
 Leroy     Pilot
 Steve     Pilot

CodePudding user response:

You can try map Type column of df2 to df1 then update

df1['Type'].update(df1['Name'].map(df2.set_index('Name')['Type']))
print(df1)

    Name     Type
0  David  Captain
1  Jones    Pilot
2   Jack    Pilot
3  Susan  Steward
4   John    Staff
5  Leroy    Pilot
6  Steve    Pilot
  • Related