sg91
sg91

Reputation: 175

Difference of a date and int column in Pandas

I have a DataFrame that looks like this:

raw_data = {'SeriesDate':['2017-03-10','2017-03-13','2017-03-14','2017-03-15'],'Test':['1','2','3','4']}
import pandas as pd
df = pd.DataFrame(raw_data,columns=['SeriesDate','Test'])
df['SeriesDate'] = pd.to_datetime(df['SeriesDate'])

I want to subtract the number field from the date field to arrive at a date, however when I do this:

df['TestDate'] = df['SeriesDate'] - pd.Series((dd) for dd in df['Test'])

I get the following TypeError:

TypeError: incompatible type [object] for a datetime/timedelta operation

Any idea how I can workaround this?

Upvotes: 2

Views: 64

Answers (1)

pansen
pansen

Reputation: 6663

You can use to_timedelta:

df['TestDate'] = df['SeriesDate'] - pd.to_timedelta(df['Test'].astype(int), unit="d")

print(df)

    SeriesDate  Test    TestDate
0   2017-03-10  1       2017-03-09
1   2017-03-13  2       2017-03-11
2   2017-03-14  3       2017-03-11
3   2017-03-15  4       2017-03-11

Upvotes: 1

Related Questions