python pandas dataframe join two dataframes

18,719

Solution 1

try this:

df.merge(df2,how='outer',left_on=['ID','COUNTRY','YEAR'],right_on=['ID',"COUNTRY","YEAR"])

(the column names should be in caps based on your input tables)

Solution 2

Have you tried

df1.join(df2)

You can add parameters later, but it should work.

Share:
18,719
bjurstrs
Author by

bjurstrs

Updated on June 07, 2022

Comments

  • bjurstrs
    bjurstrs almost 2 years

    I am trying to join to data frames. They look like this

    DF1 = ID     COUNTRY     YEAR     V1     V2     V3    V4
          12     USA         2012     x      y      z      a
          13     USA         2013     x      y      z      a
          14     RUSSIA      2012     x      y      z      a
    
    DF2 = ID     COUNTRY     YEAR     TRACT
          9      USA         2000       A
          13     USA         2013       B
    

    The desired end goal is:

    DF3 = ID     COUNTRY     YEAR     V1     V2     V3    V4    TRACT    
          9      USA         2000                                 A
          12     USA         2012     x      y      z      a
          13     USA         2013     x      y      z      a      B
          14     RUSSIA      2012     x      y      z      a
    

    I've been trying to use the pd.merge and the .join function with the on='outer' setting to no success

    df3 = pd.merge(df1,df2,how='outer',left_on=['ID','Country','Year'],right_on=['ID',"Country","Year"])