仅使用Pandas生成维护窗口内所有65分钟可用时间块组合
纯Pandas实现固定时长连续维护时间块生成
实现逻辑
- 将维护窗口起止时间、单次维护时长转换为Pandas的
Timedelta类型,适配天级时间表达规则 - 计算允许的最晚块起始时间:维护窗口结束时间 - 单次维护时长
- 按指定步长生成所有合法起始时间序列,拼接得到完整的起止时间块列表
代码实现
import pandas as pd # 配置基础参数 maintain_window_start = pd.Timedelta("0 days 08:55:00") maintain_window_end = pd.Timedelta("1 days 04:51:00") single_maintain_duration = pd.Timedelta(minutes=65) # 计算合法起始时间的最大阈值 max_allowed_start = maintain_window_end - single_maintain_duration # 生成所有合法起始时间 # 步长可按需调整:此处用1min生成所有连续无间隔的候选块,如需按固定间隔取非重叠/间隔候选可修改freq,例如改为"15min" start_time_series = pd.timedelta_range( start=maintain_window_start, end=max_allowed_start, freq="1min" ) # 拼接得到完整时间块列表 maintain_blocks = pd.DataFrame({ "block_start": start_time_series, "block_end": start_time_series + single_maintain_duration })
输出说明
最终生成的maintain_blocks即为所有符合要求的65分钟连续时间块集合,每一行对应一个时间块的起止时间,可直接导出为列表或做后续筛选处理。
内容的提问来源于stack exchange,提问作者vp_050
相关产品推荐
相关产品推荐

