为什么offsets.QuarterBegin日期是12-01、03-01、06-01、09-01?

时间:2020-11-05 07:06:13

标签: python pandas date datetime offset

t = pd.Timestamp('2020-02-05')
print(pd.offsets.QuarterBegin().rollback(t))
print(pd.offsets.QuarterEnd().rollback(t))

退出:

2019-12-01 00:00:00
2019-12-31 00:00:00

为什么结果是2019-12-01?不应该是2020-01-01吗?

1 个答案:

答案 0 :(得分:2)

docs指定存在一个startingMonth;例如“ startingMonth = 3对应于日期,例如3/01 / 2007、6 / 01/2007 ”。要了解此关键字参数的默认值是什么,可以查看src并观察到_default_starting_month = 3link)。

因此,如果不提供startingMonth,则您的季度将从月= 3、6、9、12开始-这就是为什么您“回滚” 2019-12-01 00:00:00时得到pd.Timestamp('2020-02-05')的原因。 >

如果您希望您的宿舍开始,例如在月= 1、4,...且月末= 3、6,...(含)时,可以将关键字设置为1(对于QuarterEnd分别设置为3):

t = pd.Timestamp('2020-02-05')
print(pd.offsets.QuarterBegin(startingMonth=1).rollback(t))
print(pd.offsets.QuarterEnd(startingMonth=3).rollback(t))

2020-01-01 00:00:00
2019-12-31 00:00:00