循环遍历python中的日期

时间:2017-05-17 14:47:23

标签: python pandas

我之前只在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中使用了很多菜单来完成语法。 非常感谢任何帮助。

1 个答案:

答案 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}}
相关问题