如何对带时间戳索引的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
相关产品推荐
相关产品推荐

