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

如何按固定天数块拆分含datetime类型日期列的Pandas DataFrame

按连续N天拆分Pandas DataFrame的解决方案

既然你的Datetime列已经是datetime对象,那我们可以利用日期的时间差生成分组键,精准按连续N天拆分数据,替代原来按行数拆分的逻辑。下面是具体实现步骤和代码:

步骤1:优化数据结构(可选但推荐)

如果Datetime列还不是索引,建议先将它设置为索引,后续日期计算会更便捷:

data = data.set_index('Datetime')

步骤2:生成连续N天的分组标识

我们先定位数据中的最早日期,再计算每一行日期与最早日期的天数差,最后将差值除以你指定的天数num(比如10)并取整,得到的结果就是每行所属的分组ID:

import pandas as pd

num = 10  # 每组包含的天数
# 获取数据中的最早日期
min_date = data.index.min()
# 计算每个日期对应的分组ID
data['group_id'] = (data.index - min_date).days // num

步骤3:按分组ID拆分DataFrame

用groupby按group_id分组,再把每个组的DataFrame提取到列表中:

# 提取所有分组的DataFrame到列表
results = [group for _, group in data.groupby('group_id')]
# 如果不需要保留group_id列,可以在提取后删除
results = [group.drop('group_id', axis=1) for _, group in data.groupby('group_id')]

补充说明

  • 拆分后,第一个分组包含从最早日期开始的前10天所有数据,第二个分组是接下来的10天,以此类推;
  • 如果最后一组的天数不足10天,它会被保留为列表的最后一个元素,你可以根据需求决定是否丢弃;
  • 如果Datetime列不是索引,只需把代码中的data.index替换为data['Datetime']即可适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 17:17:42