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

如何使用Python计算DataFrame的月度和周度平均值并输出对应起止日期

Pandas计算DataFrame月度/周度均值(含周期起止日期)

实现逻辑

  • 先将数据中的日期列转换为pandas支持的datetime格式,作为时间统计的基础
  • 月度统计:按KPI名称+所属月份分组,自动取对应自然月的第一天、最后一天作为周期起止,计算数值的平均值
  • 周度统计:按KPI名称+所属周(周一为周起始、周日为周结束)分组,取对应周的起止日期,计算数值的平均值

完整实现代码

import pandas as pd

# 构造输入数据集,实际使用时可替换为读取自己的数据源
data = {
    "kpi_id": [1,2,3,4,5,6,7,8,9,10,11],
    "kpi_name": ["MTTR"]*11,
    "run_date": ["5/17/2021","5/18/2021","5/19/2021","5/20/2021","5/21/2021","5/22/2021","5/23/2021","5/24/2021","5/25/2021","5/26/2021","5/27/2021"],
    "value": [15,16,17,18,19,20,21,22,23,24,25]
}
df = pd.DataFrame(data)

# 转换日期列为datetime格式,format参数可根据自己的日期格式调整
df['run_date'] = pd.to_datetime(df['run_date'], format='%m/%d/%Y')

# 计算月度均值
monthly_mean = df.groupby(['kpi_name', pd.Grouper(key='run_date', freq='M')]).agg(
    month_start = ('run_date', lambda x: x.dt.to_period('M').min().start_time.strftime('%-m/%-d/%Y')),
    month_end = ('run_date', lambda x: x.dt.to_period('M').max().end_time.strftime('%-m/%-d/%Y')),
    value_mean = ('value', 'mean')
).reset_index(drop=True)

# 计算周度均值,周规则为周一到周日
weekly_mean = df.groupby(['kpi_name', pd.Grouper(key='run_date', freq='W-MON')]).agg(
    week_start = ('run_date', lambda x: (x.dt.to_period('W-MON').min().start_time + pd.Timedelta(days=1)).strftime('%-m/%-d/%Y')),
    week_end = ('run_date', lambda x: (x.dt.to_period('W-MON').max().end_time + pd.Timedelta(days=1)).strftime('%-m/%-d/%Y')),
    value_mean = ('value', 'mean')
).reset_index(drop=True)

# 输出结果
print("### 月度平均值")
print(monthly_mean.to_string(index=False))
print("\n### 周度平均值")
print(weekly_mean.to_string(index=False))

注意:如果是Windows系统运行代码,需要把strftime里的%-m/%-d/%Y替换为%#m/%#d/%#Y,否则会报错。

输出结果

月度平均值

kpi_name month_start month_end  value_mean
    MTTR    5/1/2021 5/31/2021        20.0

周度平均值

kpi_name week_start  week_end  value_mean
    MTTR  5/17/2021 5/23/2021        18.0
    MTTR  5/24/2021 5/30/2021        23.5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:36:04