import pandas as pd df1 = pd.DataFrame({'HPI':[80,86,88,85], 'Int_rate':[2, 3, 2, 2], 'US_GDP_Thousands':[50, 55, 65, 55], 'Year' : [2001, 2002, 2003, 2005]}) ''' df2 = pd.DataFrame({'HPI':[80,85,88,85], 'Int_rate':[5, 3, 2, 2], 'US_GDP_Thousands':[50, 55, 65, 55]}, index = [2005, 2006, 2007, 2008]) ''' df3 = pd.DataFrame({'HPI':[95, 86, 88, 90], 'Unemployment':[7, 8, 9, 6], 'Low_tier_HPI':[50, 52, 50, 53], 'Year' : [2000, 2002, 2003, 2004]}) # print(pd.merge(df1, df3, on=['HPI'])) # print(df1) # print(df3) # df1.set_index('Year', inplace=True) # df3.set_index('Year', inplace=True) merged = pd.merge(df1, df3, on='Year', how='outer') print(merged)