Salman Baqri
Salman Baqri

Reputation: 109

Subtract day column from date column in pandas data frame

I have two columns in my data frame.One column is date(df["Start_date]) and other is number of days.I want to subtract no of days column(df["days"]) from Date column.

I was trying something like this

df["new_date"]=df["Start_date"]-datetime.timedelta(days=df["days"])

Upvotes: 3

Views: 3429

Answers (1)

jezrael
jezrael

Reputation: 862406

I think you need to_timedelta:

df["new_date"]=df["Start_date"]-pd.to_timedelta(df["days"], unit='D')

Sample:

np.random.seed(120)
start = pd.to_datetime('2015-02-24')
rng = pd.date_range(start, periods=10)

df = pd.DataFrame({'Start_date': rng, 'days': np.random.choice(np.arange(10), size=10)})  
print (df)
  Start_date  days
0 2015-02-24     7
1 2015-02-25     0
2 2015-02-26     8
3 2015-02-27     4
4 2015-02-28     1
5 2015-03-01     7
6 2015-03-02     1
7 2015-03-03     3
8 2015-03-04     8
9 2015-03-05     9

df["new_date"]=df["Start_date"]-pd.to_timedelta(df["days"], unit='D')
print (df)
  Start_date  days   new_date
0 2015-02-24     7 2015-02-17
1 2015-02-25     0 2015-02-25
2 2015-02-26     8 2015-02-18
3 2015-02-27     4 2015-02-23
4 2015-02-28     1 2015-02-27
5 2015-03-01     7 2015-02-22
6 2015-03-02     1 2015-03-01
7 2015-03-03     3 2015-02-28
8 2015-03-04     8 2015-02-24
9 2015-03-05     9 2015-02-24

Upvotes: 6

Related Questions