python - 使用 Pandas DateOffset 移动到给定时间的最新过去日期时间
问题描述
给定一个日期x
时间,我想用给定的时间(09:00
在我的例子中)计算最新的前一个日期时间。也就是说,如果 in 的时间x
晚于09:00
then 我想获得一个新的 datetime,它的日期与x
(和 time 的时间09:00
)相同,如果 in 的时间x
早于09:00
then 我想获得一个指向09:00
on前一天x
。
这可以使用pandas.DateOffset
吗?我试过了
x + DateOffset(hour=9, minute=0, second=0)
和
x + DateOffset(days=-1, hour=9, minute=0, second=0)
但是如果x
在之前(它向前移动时间),第一个不能正常工作,如果在之后(它移动到前一天)09:00
,后者不能正常工作。x
09:00
我知道如何“手动”执行此操作,但我想重用现有代码,这将迫使我通过DateOffset
.
解决方案
一种可能的解决方案是测试时间:
out = x + pd.offsets.DateOffset(hour=9, minute=0, second=0)
if x.hour > 9
else x + pd.offsets.DateOffset(days=-1, hour=9, minute=0, second=0)
推荐阅读
- python - Python Flask 可折叠/可扩展动态表
- python-3.x - 捕获和打印标准输出和标准错误
- google-maps - 谷歌地图颤振插件
- mysql - REPLACE 是否有可能在 INSERT 上失败?
- c++ - 在 gTest 中测试客户端/服务器
- regex - 带有 RegExp 通配符的 Google App 脚本搜索
- python - 逐字节读取文件并转换为 Int 数组的有效方法?
- javascript - 选择除一个以外的所有元素,它在 jQuery 中的子元素在 Safari 中不起作用
- spring - Vaadin:数据返回后更新 UI
- javascript - 如何将图像从本机反应发送到本机模块?