首页 > 解决方案 > 在 python 中获取 6 周后的星期一

问题描述

假设我有一个这样的数据框,

ID   Start Date
1    4/15/19
2    4/15/19
3    4/15/19
4    4/22/19
5    4/22/19
6    5/8/19
7    5/15/19

如何在 6 周后生成一个新列以获取星期一?

我知道如何使用df['Next Month'] = df['Start Date'] + pd.DateOffset(days=30)然后你可以在一个月后有一列日期。

我的最终输出将是,

ID   Start Date   After 6 weeks
1    4/15/19      5/27/19
2    4/15/19      5/27/19
3    4/15/19      5/27/19
4    4/22/19      6/3/19
5    4/22/19      6/3/19
6    5/8/19       6/17/19
7    5/15/19      6/24/19

标签: pythonpandasnumpydatedataframe

解决方案


IIUC

df['Start Date']=pd.to_datetime(df['Start Date'])

df['Start'] - pd.to_timedelta(arg=df['Start'].dt.weekday, unit='D')+pd.tseries.offsets.DateOffset(days=6*7)
Out[117]: 
0   2019-05-27
1   2019-05-27
2   2019-05-27
3   2019-06-03
4   2019-06-03
5   2019-06-17
6   2019-06-24
Name: Start, dtype: datetime64[ns]

推荐阅读