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

创建可灵活调整的时间索引:按指定天数划分日期桶的方法求助

按N天分组生成时间索引的解决方案

嗨,这个需求很常见,用Python的pandas就能轻松搞定!核心思路是计算每个日期与起始日期的天数差,再通过整数除法把它们分到对应的“桶”里,最后给每个桶分配从1开始的索引。

具体实现步骤

假设我们要按每3天分组(你可以随时改成4、5或其他天数),直接看代码:

import pandas as pd

# 1. 准备你的日期数据(这里用示例生成,实际可替换成你的数据集)
dates = pd.date_range(start='2024-08-01', end='2024-08-09')

# 2. 定义每组的天数
group_days = 3

# 3. 计算每个日期的时间索引
start_date = dates.min()  # 用日期序列的最早日期作为分组起点
day_diff = (dates - start_date).days  # 每个日期与起点的天数差
time_index = (day_diff // group_days) + 1  # 整除分组天数后加1,让索引从1开始

# 4. 查看格式化后的结果
result_df = pd.DataFrame({'日期': dates.strftime('%m/%d'), 'time_index': time_index})
print(result_df)

运行后输出会和你期望的完全一致:

日期  time_index
0  08/01           1
1  08/02           1
2  08/03           1
3  08/04           2
4  08/05           2
5  08/06           2
6  08/07           3
7  08/08           3
8  08/09           3

灵活调整的小技巧

  • 自定义分组起始日:如果不想用日期序列的最早日期,比如想从2024-07-30开始分组,只需把start_date改成自定义日期:

    custom_start = pd.to_datetime('2024-07-30')
    day_diff = (dates - custom_start).days
    time_index = (day_diff // group_days) + 1
    

    这样07/30、07/31、08/01会被分到time_index=1,完美适配你的任意起始需求。

  • 处理非连续日期:如果你的日期数据有缺失(比如中间跳过几天),这个方法依然有效,因为它只看每个日期与起始日的绝对天数差,不会受缺失值影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:11:45