Python日期介于两个日期之间

Python日期介于两个日期之间,python,python-2.7,pandas,Python,Python 2.7,Pandas,我有一个如下所示的数据帧: 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']) pri

我有一个如下所示的数据帧:

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)

然而,我在最后两篇专栏文章中苦苦挣扎。有人能提供一些帮助吗?

一旦你有了这个
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\u Date-df.Start\u Date)/2)
给出一系列时间增量
.dt.ceil('D')
将这一系列内容总结到今天

pd.Series(df.Date\u差异中dd的BDay(dd.days)
根据
Date\u差异中的天数创建一系列工作日。(很可能有更好的方法,但我是一个熊猫新手)


附带问题:为什么有两列内容相同的
Series\u Date
SeriesDate

谢谢,不过呢?我需要导入的是外部库吗?..dt是任何包含类似datetimes的对象的系列中可用的属性,它包含与datetime相关的方法,例如本例中的
ceil()
。当尝试使用b日期进行减法时,请参见“谢谢”,即df['Start_Date']=df['SeriesDate']-b日期(10)。我得到一个类型错误:ufunc subtract不能使用类型为dtype('的操作数