python - 为什么 offsets.QuarterBegin 日期是 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 对应于 2007 年 3 月 1 日、2007 年 6 月 1 日等日期”。要找出这个关键字参数的默认值是什么,您可以查看src并观察它_default_starting_month = 3
(链接)。
因此,如果不提供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
推荐阅读
- android - SignalR android客户端的proguard规则是什么?
- selenium - 如何使用 Click Element 功能选择带有机器人框架的“li”id?
- c# - 在c#中真正销毁一个字符串
- asp.net - Redis - ERR 未知命令“EVAL”
- node.js - 使用 sequelize 和环境变量连接数据库的节点配置文件设置
- django - 如何创建在不同域上同时托管 PHP 和 Django 站点的服务器
- c++ - Halide 用于 GPU 上的平铺度量和调度
- logging - 各种子类的单独日志记录
- javascript - 反应路由器:路由不起作用
- django - Django HttpResponseRedirect 在 form_valid 中不起作用