滚动窗口仅统计局部区间,而扩展窗口从第一条数据开始持续累加,适配累计销售额、累计用户、累计占比等全局时序指标计算。场景:基于每日销售数据,计算开线以来累计销售额、累计平均日销、单日销售额占累计总额比重。核心知识点:扩展窗口原理、累计聚合运算、累计占比计算、expanding与rolling场景区分。① 生成测试数据
import pandas as pdimport numpy as np# 生成连续45天日销数据date_series = pd.date_range(start="2025-04-01", periods=45, freq="D")df = pd.DataFrame({ "date": date_series, "daily_revenue": np.random.randint(4000, 15000, 45)})df.to_excel("expanding_window_data.xlsx", index=False)print("扩展窗口时序测试数据生成完成")
② 核心代码
import pandas as pddf = pd.read_excel("expanding_window_data.xlsx", parse_dates=["date"])# 初始化扩展窗口(min_periods=1 第一行即可开始计算,无空值)exp_window = df["daily_revenue"].expanding(min_periods=1)# 计算各类累计指标df["累计销售额"] = exp_window.sum()df["累计平均日销"] = exp_window.mean().round(2)df["单日占累计比重(%)"] = (df["daily_revenue"] / df["累计销售额"] * 100).round(2)# 查看末尾10行数据print(df.tail(10))
结果展示
总结
扩展窗口数据区间从首行持续向后扩张,是制作累计大盘、业绩进度、历史累计指标的核心工具。结合滚动窗口可同时完成周期趋势与全局累计双重分析,是时序报表的经典组合用法。