使用python如何按季度获取日期
使用python、pandas或dateutil,如何获得三个月周期的最后一个星期五,其中周期结束时间可能是4月。由于我的目标是“重点日期”,即本月最后一个星期五,交付周期为三个月,因此我可能需要将交付周期延长至六个月使用python如何按季度获取日期,python,pandas,python-dateutil,Python,Pandas,Python Dateutil,使用python、pandas或dateutil,如何获得三个月周期的最后一个星期五,其中周期结束时间可能是4月。由于我的目标是“重点日期”,即本月最后一个星期五,交付周期为三个月,因此我可能需要将交付周期延长至六个月 SourceDate, Q1, Q2, Q3 2013-Jun-26 2013-Sep-20 2013-Aug-16 2013-Jul-19 2013-Jun-25 2013-Sep-20 2013-Aug-16 2013-Jul-19 2013-Jun-24 **2013-S
SourceDate, Q1, Q2, Q3
2013-Jun-26 2013-Sep-20 2013-Aug-16 2013-Jul-19
2013-Jun-25 2013-Sep-20 2013-Aug-16 2013-Jul-19
2013-Jun-24 **2013-Sep-20** 2013-Aug-16 2013-Jul-19
**2013-Jun-21** **2013-Jun-21** 2013-Aug-16 2013-Jul-19
2013-Jun-20 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-Jun-19 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-Jun-18 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-Jun-17 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-Jun-14 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-Jun-13 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-Jun-12 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-Jun-11 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-Jun-10 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-Jun-07 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-Jun-06 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-Jun-05 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-Jun-04 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-Jun-03 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-May-31 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-May-30 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-May-29 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-May-28 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-May-24 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-May-23 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-May-22 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-May-21 2013-Jun-21 2013-Aug-16 2013-Jul-19
2013-May-20 2013-Jun-21 **2013-Aug-16** 2013-Jul-19
**2013-May-17** 2013-Jun-21 **2013-May-17** 2013-Jul-19
2013-May-16 2013-Jun-21 2013-May-17 2013-Jul-19
2013-May-15 2013-Jun-21 2013-May-17 2013-Jul-19
2013-May-14 2013-Jun-21 2013-May-17 2013-Jul-19
2013-May-13 2013-Jun-21 2013-May-17 2013-Jul-19
2013-May-10 2013-Jun-21 2013-May-17 2013-Jul-19
2013-May-09 2013-Jun-21 2013-May-17 2013-Jul-19
2013-May-08 2013-Jun-21 2013-May-17 2013-Jul-19
2013-May-07 2013-Jun-21 2013-May-17 2013-Jul-19
2013-May-06 2013-Jun-21 2013-May-17 2013-Jul-19
2013-May-03 2013-Jun-21 2013-May-17 2013-Jul-19
2013-May-02 2013-Jun-21 2013-May-17 2013-Jul-19
2013-May-01 2013-Jun-21 2013-May-17 2013-Jul-19
2013-Apr-30 2013-Jun-21 2013-May-17 2013-Jul-19
2013-Apr-29 2013-Jun-21 2013-May-17 2013-Jul-19
2013-Apr-26 2013-Jun-21 2013-May-17 2013-Jul-19
2013-Apr-25 2013-Jun-21 2013-May-17 2013-Jul-19
2013-Apr-24 2013-Jun-21 2013-May-17 2013-Jul-19
2013-Apr-23 2013-Jun-21 2013-May-17 2013-Jul-19
2013-Apr-22 2013-Jun-21 2013-May-17 **2013-Jul-19**
**2013-Apr-19** 2013-Jun-21 2013-May-17 **2013-Apr-19**
2013-Apr-18 2013-Jun-21 2013-May-17 2013-Apr-19
2013-Apr-17 2013-Jun-21 2013-May-17 2013-Apr-19
2013-Apr-16 2013-Jun-21 2013-May-17 2013-Apr-19
2013-Apr-15 2013-Jun-21 2013-May-17 2013-Apr-19
2013-Apr-12 2013-Jun-21 2013-May-17 2013-Apr-19
2013-Apr-11 2013-Jun-21 2013-May-17 2013-Apr-19
2013-Apr-10 2013-Jun-21 2013-May-17 2013-Apr-19
2013-Apr-09 2013-Jun-21 2013-May-17 2013-Apr-19
我用WeekOfMonth(weekday=4,weekday=2)
试过pandasb Monthend
和bGuarterend
,我不能滚动部分
编辑:
如果像我这样的人从谷歌来到这里,我发现这种方法更容易阅读:
d = datetime.now()
import pandas.tseries.offsets as offsets
print(d + offsets.QuarterEnd() - offsets.Week(weekday=4))
OP要求的季度(三个月)的最后一个星期五是哪一天?@falsetru,2013年5月15日的输出是错误的,第一个日期应该是6月21日,而不是5月17日。@Merlin,对不起,我不明白你的意思。我的答案/输出不包含“jun/21”和“may/27”。@Merlin,你的预期输出是什么?@falsetru,看问题看第三个星期五,第一列应该是基于(3,6,9,12)的三个月,第二列是基于月份的三个月(基于(2,5,8,11),第三列是基于月份的三个月(1,4,7,10)…但不是季度末,而是本期的第三个星期五。
>>> from dateutil.rrule import *
>>> list(rrule(MONTHLY, count=3, byweekday=FR, bysetpos=-1))
[datetime.datetime(2013, 7, 26, 22, 4, 20),
datetime.datetime(2013, 8, 30, 22, 4, 20),
datetime.datetime(2013, 9, 27, 22, 4, 20)]
>>> list(rrule(MONTHLY, count=12, byweekday=FR, bysetpos=-1))[::3]
[datetime.datetime(2013, 7, 26, 22, 15, 14),
datetime.datetime(2013, 10, 25, 22, 15, 14),
datetime.datetime(2014, 1, 31, 22, 15, 14),
datetime.datetime(2014, 4, 25, 22, 15, 14)]
d = datetime.now()
import pandas.tseries.offsets as offsets
print(d + offsets.QuarterEnd() - offsets.Week(weekday=4))