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

如何在Pandas中按年/月重置计算扩展窗口均值?

按年/按月重置的扩展均值计算方案

核心思路

利用groupby按年份或月份分组,在每个分组内部计算扩展均值(expanding mean),每当年份/月份切换时,扩展窗口会自动重置,最终结果将与原数据框的索引、列结构完全一致。


1. 生成示例数据(与你的数据集结构一致)

import pandas as pd
import numpy as np

df = pd.DataFrame(
    np.random.randint(0, 100, size=(1000, 8)),
    columns=list('ABCDEFGH'),
    index=pd.date_range("20180101", periods=1000)
)

2. 按年重置的扩展均值

按索引的年份分组,每组内计算从年初到当前日期的累计均值:

# 按年重置的扩展均值
annual_expanding_mean = df.groupby(df.index.year).expanding().mean().reset_index(level=0, drop=True)
  • df.index.year提取每个时间索引对应的年份,作为分组依据
  • expanding().mean()在每个年份组内计算累计均值
  • reset_index(level=0, drop=True)移除分组产生的年份索引,恢复原DatetimeIndex结构

3. 按月重置的扩展均值

按「年-月」周期分组,每组内计算当月初到当前日期的累计均值:

# 按月重置的扩展均值
monthly_expanding_mean = df.groupby(df.index.to_period('M')).expanding().mean().reset_index(level=0, drop=True)
  • df.index.to_period('M')将DatetimeIndex转换为月度周期对象(如2018-01),作为分组依据
  • 后续逻辑与按年计算一致,最终结果保持原数据框的索引和列结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 03:22:49