如何获取两个Timestamp之间的中间时间戳(小时精度)
获取两个Timestamp的中间小时精度时间戳
问题描述
给定两个pandas Timestamp:
import pandas as pd t1 = pd.Timestamp('2020-01-01 00:00:00') t2 = pd.Timestamp('2020-01-07 06:00:00')
需要获取它们之间恰好处于中间位置、精度为1小时的时间戳,示例结果为:
tm = pd.Timestamp('2020-01-04 03:00:00')
若时间间隔对应的小时数为偶数(即存在两个中间整点时间戳),任选其一即可。
解决方案
利用pandas的Timestamp和Timedelta运算特性,直接计算中间时间并保证小时精度:
import pandas as pd t1 = pd.Timestamp('2020-01-01 00:00:00') t2 = pd.Timestamp('2020-01-07 06:00:00') # 计算两个时间的中间间隔时长 half_interval = (t2 - t1) / 2 # 得到理论中间时间 middle_time = t1 + half_interval # 确保结果为小时精度(若理论中间时间非整点,可任选floor/ceil取整) middle_time_hourly = middle_time.floor('H') # 或使用middle_time.ceil('H') print(middle_time_hourly) # 输出:Timestamp('2020-01-04 03:00:00')
逻辑说明
- 计算中间间隔:通过
(t2 - t1)获取时间差,除以2得到从t1到中间点的时长 - 生成中间时间:将中间间隔加到
t1上,得到理论的中间时刻 - 保证小时精度:如果理论中间时刻不是整点(即时间间隔总小时数为奇数),使用
floor('H')向下取整或ceil('H')向上取整,任选其一即可满足需求
内容的提问来源于stack exchange,提问作者Cranjis
相关产品推荐
相关产品推荐

