Python:从 df 添加周数

Python: Add Weeks to Date from df

如何将两个 df 列加在一起(日期 + 周):

这对我有用:

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

但是当我尝试从列中添加周数时,出现类型错误:timedelta weeks 组件不受支持的类型:系列

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

非常感谢您的帮助!

您可以使用 pandas to_timelta 函数将周数列转换为时间增量,如下所示:

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