You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对带时间戳索引的pandas DataFrame按固定窗口交替拆分

Datetime索引DataFrame按固定窗口交替拆分实现方案

前置条件

  • 你的DataFrame索引为Datetime类型
  • 索引已经按照时间升序完成排序

实现代码

示例窗口大小为2天,可按需修改窗口参数适配不同时长需求:

import pandas as pd

# ---------------------- 核心拆分逻辑 ----------------------
window_length = 2  # 固定窗口时长,单位为天,可自行调整
# 生成交替分组标记
group_mask = (df.index - df.index.min()).days // window_length % 2

# 拆分得到两个独立DataFrame
df1 = df[group_mask == 0] # 对应第一个、第三个等奇数顺序的窗口
df2 = df[group_mask == 1] # 对应第二个、第四个等偶数顺序的窗口
# ---------------------------------------------------------

# 可选:验证拆分结果
print("df1时间范围:", df1.index.min().date(), "~", df1.index.max().date())
print("df2时间范围:", df2.index.min().date(), "~", df2.index.max().date())

其他窗口单位适配

如果需要使用小时、分钟等其他窗口单位,修改group_mask的计算逻辑即可,示例为4小时窗口:

# 4小时窗口拆分逻辑
window_hour = 4
group_mask = (df.index - df.index.min()).total_seconds() // (window_hour * 3600) % 2

内容的提问来源于stack exchange,提问作者Jonathan Roy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 13:27:02