我之前只在Stata工作,但我现在正在尝试切换到python。我想进行一项活动研究。更具体地说,我每年有4个固定日期。每个季度的每个第一天,例如1月1日,4月1日......,活动窗口+ - 活动日期前10天。为了将我的样本分区到所需的窗口,我使用以下命令:
smpl = merged.ix[datetime.date(year=2013,month=12,day=21):datetime.date(year=2014,month=1,day=10)]
我想编写一个循环,在循环的每次运行中自动将选择的采样周期向前移动90天,以便随后我可以在该步骤中运行所需的分析。我知道如何运行分析,但我不知道如何在循环中的每一步向前移动样本90天。例如,循环中的下一个样本应为:
smpl = merged.ix[datetime.date(year=2014,month=3,day=21):datetime.date(year=2014,month=4,day=10)]
它可能非常简单,类似月份= I,然后每个月换+3。我只是在python中使用了很多菜单来完成语法。 非常感谢任何帮助。
答案 0 :(得分:1)
我会用这个:
In [158]: for beg in pd.date_range('2013-12-21', '2017-05-17', freq='90D'):
...: print(beg, beg + pd.Timedelta('20D'))
...:
2013-12-21 00:00:00 2014-01-10 00:00:00
2014-03-21 00:00:00 2014-04-10 00:00:00
2014-06-19 00:00:00 2014-07-09 00:00:00
2014-09-17 00:00:00 2014-10-07 00:00:00
2014-12-16 00:00:00 2015-01-05 00:00:00
2015-03-16 00:00:00 2015-04-05 00:00:00
2015-06-14 00:00:00 2015-07-04 00:00:00
2015-09-12 00:00:00 2015-10-02 00:00:00
2015-12-11 00:00:00 2015-12-31 00:00:00
2016-03-10 00:00:00 2016-03-30 00:00:00
2016-06-08 00:00:00 2016-06-28 00:00:00
2016-09-06 00:00:00 2016-09-26 00:00:00
2016-12-05 00:00:00 2016-12-25 00:00:00
2017-03-05 00:00:00 2017-03-25 00:00:00
演示:
{{1}}