Python日期介于两个日期之间

2024-09-28 05:17:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个数据帧:

raw_data = {'Series_Date':['2017-03-10','2017-03-13','2017-03-14','2017-03-15'],'SeriesDate':['2017-03-10','2017-03-13','2017-03-14','2017-03-15']}
import pandas as pd
df = pd.DataFrame(raw_data,columns=['Series_Date','SeriesDate'])
print df

对于这个DF,我想在末尾附加四列:

1)开始日期=序列日期-10个工作日

2)结束日期=序列日期-3个工作日

3)日期差异=(结束日期-开始日期)/2。但是,如果日期差为4.5天,则值应为5,而不是4,即应四舍五入。你知道吗

4)滚动日期=结束日期-“日期差异”工作日。i、 e.如果日期差为5,则滚动日期=结束日期-5个工作日

我可以将前两列附加如下:

from pandas.tseries.offsets import BDay
df['Start_Date'] = df['SeriesDate'] - BDay(10)
df['End_Date'] = df['SeriesDate'] - BDay(3)

但是,我在最后两个专栏中苦苦挣扎。有人能帮忙吗?你知道吗


Tags: 数据importpandasdfdatadaterawas
1条回答
网友
1楼 · 发布于 2024-09-28 05:17:35

一旦你有了这个df

  Series_Date Start_Date   End_Date
0  2017-03-10 2017-02-24 2017-03-07
1  2017-03-13 2017-02-27 2017-03-08
2  2017-03-14 2017-02-28 2017-03-09
3  2017-03-15 2017-03-01 2017-03-10

您可以填写两列:

df['Date_Difference'] = ((df.End_Date - df.Start_Date) / 2).dt.ceil('D')
df['Roll_Date'] = df.End_Date - pd.Series(BDay(dd.days) for dd in df.Date_Difference)

说明:

(df.End_Date - df.Start_Date) / 2)给出一系列时间增量。.dt.ceil('D')将这个系列的内容归纳到今天。你知道吗

pd.Series(BDay(dd.days) for dd in df.Date_Difference)根据Date_Difference中的天数创建一系列BusinessDays。(很可能有更好的方法,但我是熊猫的新手)。你知道吗

附带问题:为什么有两列Series_DateSeriesDate具有相同的内容?你知道吗

相关问题 更多 >

    热门问题