df['date1'] = df['date'] - pd.to_timedelta(df['day'], unit='d') print (df) date day date1 0 2015-10-10 23 2015-09-17 1 2015-12-19 9 2015-12-10 2 2016-03-05 34 2016-01-31 3 2016-09-17 23 2016-08-25 4 2016-04-30 2 2016-04-28