有几个关键点:
- 对时间的循环:可以使用pandas的
date_range
函数,比较容易一些 - 后推任意时点:使用
dateutil.relativedelta
的relativedelta()
,可以以准确地指定日期后推
示例代码
比如:
- 循环
2020-01-01
至2020-02-01
这个时间段 - 每一轮都后推5个月
import pandas as pd
from dateutil.relativedelta import relativedelta
for start_date in pd.date_range("2020-01-01", "2020-02-01"):
end_date = start_date + relativedelta(months=5) # 向后推5个月
print("时间区间:起始日期 {} 终止日期 {}".format(start_date, end_date))
得到的结果如下:
时间区间:起始日期 2020-01-01 00:00:00 终止日期 2020-06-01 00:00:00
时间区间:起始日期 2020-01-02 00:00:00 终止日期 2020-06-02 00:00:00
时间区间:起始日期 2020-01-03 00:00:00 终止日期 2020-06-03 00:00:00
时间区间:起始日期 2020-01-04 00:00:00 终止日期 2020-06-04 00:00:00
时间区间:起始日期 2020-01-05 00:00:00 终止日期 2020-06-05 00:00:00
时间区间:起始日期 2020-01-06 00:00:00 终止日期 2020-06-06 00:00:00
时间区间:起始日期 2020-01-07 00:00:00 终止日期 2020-06-07 00:00:00
时间区间:起始日期 2020-01-08 00:00:00 终止日期 2020-06-08 00:00:00
时间区间:起始日期 2020-01-09 00:00:00 终止日期 2020-06-09 00:00:00
时间区间:起始日期 2020-01-10 00:00:00 终止日期 2020-06-10 00:00:00
时间区间:起始日期 2020-01-11 00:00:00 终止日期 2020-06-11 00:00:00
时间区间:起始日期 2020-01-12 00:00:00 终止日期 2020-06-12 00:00:00
时间区间:起始日期 2020-01-13 00:00:00 终止日期 2020-06-13 00:00:00
时间区间:起始日期 2020-01-14 00:00:00 终止日期 2020-06-14 00:00:00
时间区间:起始日期 2020-01-15 00:00:00 终止日期 2020-06-15 00:00:00
时间区间:起始日期 2020-01-16 00:00:00 终止日期 2020-06-16 00:00:00
时间区间:起始日期 2020-01-17 00:00:00 终止日期 2020-06-17 00:00:00
时间区间:起始日期 2020-01-18 00:00:00 终止日期 2020-06-18 00:00:00
时间区间:起始日期 2020-01-19 00:00:00 终止日期 2020-06-19 00:00:00
时间区间:起始日期 2020-01-20 00:00:00 终止日期 2020-06-20 00:00:00
时间区间:起始日期 2020-01-21 00:00:00 终止日期 2020-06-21 00:00:00
时间区间:起始日期 2020-01-22 00:00:00 终止日期 2020-06-22 00:00:00
时间区间:起始日期 2020-01-23 00:00:00 终止日期 2020-06-23 00:00:00
时间区间:起始日期 2020-01-24 00:00:00 终止日期 2020-06-24 00:00:00
时间区间:起始日期 2020-01-25 00:00:00 终止日期 2020-06-25 00:00:00
时间区间:起始日期 2020-01-26 00:00:00 终止日期 2020-06-26 00:00:00
时间区间:起始日期 2020-01-27 00:00:00 终止日期 2020-06-27 00:00:00
时间区间:起始日期 2020-01-28 00:00:00 终止日期 2020-06-28 00:00:00
时间区间:起始日期 2020-01-29 00:00:00 终止日期 2020-06-29 00:00:00
时间区间:起始日期 2020-01-30 00:00:00 终止日期 2020-06-30 00:00:00
时间区间:起始日期 2020-01-31 00:00:00 终止日期 2020-06-30 00:00:00
时间区间:起始日期 2020-02-01 00:00:00 终止日期 2020-07-01 00:00:00