为什么偏移.季度开始日期是 12-01、03-01、06-01、09-01?


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吗?

文档指定有一个startingMonth;例如">startingMonth = 3 对应于 3/01/2007、6/01/2007 这样的日期"。要找出此关键字参数的默认值是什么,您可以查看src并观察该_default_starting_month = 3(链接)。

因此,在没有提供startingMonth的情况下,您的季度从 month = 3、6、9、12 开始 - 这就是为什么如果您"回滚"pd.Timestamp('2020-02-05'),您会2019-12-01 00:00:00

如果您希望您的季度开始,例如每月 = 1、4、...并在月结束 = 3, 6, ...(含),您可以将关键字设置为 1(对于季度末,分别设置为 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

最新更新