datasets["comp_set"] means = datasets["comp_set"].groupby(['DAYS_SINCE_RELEASE','STOREID'], as_index=False).UNITS.mean() means.columns = ['DAYS_SINCE_RELEASE', 'STOREID', 'COMP_AVG_UNITS'] #print means my_release = datasets["my_release"][['DAYS_SINCE_RELEASE', 'STOREID', 'UNITS']] my_release.columns = ['DAYS_SINCE_RELEASE', 'STOREID', 'RELEASE_UNITS'] #print my_release comparison = pd.merge(my_release,means, on=['DAYS_SINCE_RELEASE', 'STOREID']) comparison['BENCHMARK'] = (comparison['RELEASE_UNITS'] - comparison['COMP_AVG_UNITS']) / comparison['COMP_AVG_UNITS'] * 100 comparison = comparison.sort_values(by=['DAYS_SINCE_RELEASE','STOREID']) print comparison