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

如何基于完整8个月时间序列按COD分组计算ACT的均值与标准差

按完整8个月时间周期计算分组ACT均值与标准差的解决方案

你之前的代码是直接对每个COD现存的ACT记录计算均值和标准差,但这只能反映有活动记录的时间段的统计结果,没法覆盖你需要的完整8个月周期。要解决这个问题,我们需要先补全每个COD在8个月周期内的所有时间节点数据(无活动的节点填充0),再基于完整序列计算统计量。具体步骤如下:

1. 预处理日期并确定完整时间周期

首先把日期转换为可分组的格式,然后确定8个月的连续时间范围(这里以数据中最早的月份为起点,你也可以指定固定的起始月份):

import pandas as pd

# 你的原始数据(示例)
df = pd.DataFrame({
    'COD': [5713]*5 + [23369]*4 + [32012]*2,
    'ACT': [1.0]*11,
    'DATE': ['2020-07-16', '2020-08-11', '2020-06-20', '2020-06-19', '2020-06-01',
             '2020-07-17', '2020-08-07', '2020-09-02', '2020-11-22', '2020-06-02', '2020-07-26']
})

# 转换日期格式并提取年月(作为时间分组单位)
df['DATE'] = pd.to_datetime(df['DATE'])
df['year_month'] = df['DATE'].dt.to_period('M')

# 生成连续8个月的时间序列:以数据中最早的月份为起点
start_month = df['year_month'].min()
full_time_range = pd.period_range(start=start_month, periods=8, freq='M')

2. 构建完整的COD-时间节点数据集

生成所有唯一COD和8个月时间节点的笛卡尔积,确保每个COD都覆盖完整周期:

# 获取所有唯一的COD值
unique_cods = df['COD'].unique()

# 构建COD与完整时间节点的全量组合
full_dataset = pd.MultiIndex.from_product(
    [unique_cods, full_time_range],
    names=['COD', 'year_month']
).to_frame(index=False)

3. 聚合月度ACT数据并补全缺失值

把原始数据按COD和年月分组统计月度活动次数,再和全量数据集合并,无活动的月份填充0:

# 统计每个COD每月的ACT总和(每条记录代表1次活动,总和即月度活动次数)
monthly_act_counts = df.groupby(['COD', 'year_month'])['ACT'].sum().reset_index()

# 合并到全量数据集,缺失的ACT值填充为0(代表该月无活动)
full_dataset = full_dataset.merge(
    monthly_act_counts,
    on=['COD', 'year_month'],
    how='left'
).fillna({'ACT': 0})

4. 计算完整周期的均值与标准差

现在基于补全后的8个月完整序列,按COD分组计算统计量,还可以把结果合并回原始数据:

# 计算每个COD的均值和标准差
cod_stats = full_dataset.groupby('COD')['ACT'].agg(
    MEAN='mean',
    STD='std'
).reset_index()

# 将统计量合并回原始数据(方便和原记录对应)
df = df.merge(cod_stats, on='COD', how='left')

# 如果需要查看每个COD的完整8个月序列及统计量,可以查看full_dataset
full_dataset = full_dataset.merge(cod_stats, on='COD', how='left')

关键细节说明

  • 这里以月度为时间粒度,如果你需要按天计算,只需把freq='M'改成freq='D',生成8个月内的所有日期即可。
  • 填充值用0是因为无活动的月份没有ACT记录,代表活动次数为0;如果用NaN,计算均值时会忽略该节点,依然不符合完整周期的统计要求。
  • 最终的cod_stats就是每个COD在完整8个月周期内的ACT均值和标准差,full_dataset则包含了每个月的具体活动次数和统计结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 11:32:28