Mastodon87
Mastodon87

Reputation: 335

Compute difference in days between two date variables - Python

I have two date variables, and I tried to compute the difference in days between them with:

from datetime import date, timedelta,datetime

date_format = "%Y/%m/%d"
a = datetime.strptime(df.D1, date_format)
b = datetime.strptime(df.D2, date_format)

df['delta'] = b - a
print delta.days

But I'm getting this error:

TypeError: strptime() argument 1 must be str, not Series

How could I do this? The variables are objects, should I transform them in Datatime64?

Upvotes: 0

Views: 929

Answers (1)

sacuL
sacuL

Reputation: 51405

Since you're working with pandas, you can use pd.to_datetime instead of the datetime package:

# Convert each date column to datetime:
df['D1'] = pd.to_datetime(df.D1,format='%Y/%m/%d')
df['D2'] = pd.to_datetime(df.D2,format='%Y/%m/%d')

# With 2 datetime Series, a simple subtraction will give you a Timedelta column:
df['delta'] = df.D1 - df.D2

For example:

>>> df
           D1          D2
0  2015/05/18  2014/06/21
1  2015/10/18  2014/08/14

df['D1'] = pd.to_datetime(df.D1,format='%Y/%m/%d')
df['D2'] = pd.to_datetime(df.D2,format='%Y/%m/%d')
df['delta'] = df.D1 - df.D2

>>> df
           D1          D2    delta
0  2015/05/18  2014/06/21 331 days
1  2015/10/18  2014/08/14 430 days

Upvotes: 4

Related Questions