Skip to content Skip to sidebar Skip to footer

Merge Two Dataframes Based On A Column

I want to compare name column in two dataframes df1 and df2 , output the matching rows from dataframe df1 and store the result in new dataframe df3. How do i do this in Pandas ? d

Solution 1:

Option 1

Using df.isin:

In[1362]: df1[df1.name.isin(df2.name)]Out[1362]: 
  placenameqtyunit0NYTom2101TKRon315

Option 2

Performing an inner-join with df.merge:

In [1365]: df1.merge(df2.name.to_frame())
Out[1365]: 
  place name  qty  unit
0    NY  Tom    2101    TK  Ron    315

Option 3

Using df.eq:

In [1374]: df1[df1.name.eq(df2.name)]
Out[1374]: 
  place name  qty  unit
0    NY  Tom    2101    TK  Ron    315

Solution 2:

You want something called an inner join.

df1.merge(df2,on = 'name')

place_x name    qty unit place_y price
NY      Tom      210     PH      7
TK      Ron      315     TK      5

The _xand _y happens when you have a column in both data frames being merged.

Post a Comment for "Merge Two Dataframes Based On A Column"