Home > OS >  Python: Add Weeks to Date from df
Python: Add Weeks to Date from df

Time:12-03

How would I add two df columns together (date weeks):

This works for me:

df['Date'] = pd.to_datetime(startDate, format='%Y-%m-%d') datetime.timedelta(weeks = 3)

But when I try to add weeks from a column, I get a type error: unsupported type for timedelta weeks component: Series

df['Date'] = pd.to_datetime(startDate, format='%Y-%m-%d') datetime.timedelta(weeks = df['Duration (weeks)'])

Would appreciate any help thank you!

CodePudding user response:

You can use the pandas to_timelta function to transform the number of weeks column to a timedelta, like this:

import pandas as pd
import numpy as np

# create a DataFrame with a `date` column
df = pd.DataFrame(
    pd.date_range(start='1/1/2018', end='1/08/2018'),
    columns=["date"]
)

# add a column `weeks` with a random number of weeks
df['weeks'] = np.random.randint(1, 6, df.shape[0])

# use `pd.to_timedelta` to transform the number of weeks column to a timedelta
# and add it to the `date` column 
df["new_date"] = df["date"]   pd.to_timedelta(df["weeks"], unit="W")

df.head()

    date       weeks    new_date
0   2018-01-01  5   2018-02-05
1   2018-01-02  2   2018-01-16
2   2018-01-03  2   2018-01-17
3   2018-01-04  4   2018-02-01
4   2018-01-05  3   2018-01-26
  • Related