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

如何基于固定日期列表对pandas时间序列执行groupby聚合操作

固定月度日期区间的时间序列分组聚合方案

我们可以通过pd.cut为时间序列的每个索引匹配对应分组区间,再基于分组标签做矢量化聚合,比循环实现效率更高、代码更简洁。

完整实现代码

import pandas as pd
import numpy as np

# 原始数据构造
dates = pd.date_range('1/1/2004', periods=365, freq="D")
ts = pd.Series(np.random.randint(0,101, 365), index=dates)

# 生成分组边界
group_bounds = dates[dates.day.isin([1,8,16,24])]
# 补充末尾边界,覆盖整个时间序列的最后一段区间
group_bounds = group_bounds.append(pd.Index([dates[-1] + pd.Timedelta(days=1)]))

# 生成每个日期对应的分组标签
group_keys = pd.cut(ts.index, bins=group_bounds, right=False, labels=group_bounds[:-1])
# 按分组聚合计算所需指标
result = ts.groupby(group_keys).agg(['sum', 'max', 'min'])

实现说明

  • pd.cut的right=False参数指定区间为左闭右开[起始日期, 结束日期),和你原始循环的判断逻辑完全一致
  • 分组标签默认取区间的起始日期,可直接识别每个分组对应的时间段
  • 天然兼容不同月份天数差异、闰年场景,因为分组边界完全基于你指定的每月固定日期生成,和月份长度无关
  • 调整agg方法的入参即可灵活扩展需要计算的聚合指标,无需修改分组逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:09:04