Pandas lookup, mapping one column in a dataframe to another in a different dataframe

wolfsatthedoor picture wolfsatthedoor · Sep 1, 2014 · Viewed 11.7k times · Source

I have two pandas dataframes: df1 and df2.

df1 has columns X and Y and weeknum. df2 has columns Z, weeknum, and datetime.

I want to basically keep df1 and have an extra column in it that is corresponding datetime for weeknum.

I can use merge but there must be a cleaner way, without having to drop column Z.

Answer

Mike picture Mike · Sep 1, 2014

You can grab the columns you want in the merge syntax

df1 = df1.merge(df2[['weeknum', 'datetime']], on=['weeknum'])

This will make sure you don't have any unwanted columns of df2 in your result, but you don't have to delete those columns from your second DataFrame in the process.