Pandas如何按固定大小拆分DataFrame窗口并保留起止日期信息
实现方案
Pandas 没有直接匹配该需求的内置函数,你可以通过索引分组聚合的方式快速实现,代码如下:
import pandas as pd # 假设原始数据已存入变量df,首先确保Date列为datetime类型 df['Date'] = pd.to_datetime(df['Date']) n = 4 # 可变窗口大小,可根据需求调整 # 可选:若要舍弃最后不足n条的不完整窗口,放开下面一行代码 # df = df.iloc[:len(df) // n * n] # 生成无重叠窗口的分组键 group_key = df.index // n # 聚合得到目标结构的DataFrame result = df.groupby(group_key).agg( date_start=('Date', 'first'), date_end=('Date', 'last'), power=('Power', list) ).reset_index(drop=True)
注意事项
- 执行前请确保原始DataFrame已按
Date列升序排序,若未排序可先执行df = df.sort_values('Date').reset_index(drop=True)再运行上述代码 - 方法时间复杂度为O(N),百万级数据量也可高效运行
- 最终输出的
result结构完全匹配你给出的示例要求
内容的提问来源于stack exchange,提问作者thelaw
相关产品推荐
相关产品推荐

