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

如何在Pandas DataFrame中按月份拆分时间序列并计算月度均值

问题描述

我有一个包含多年小时级数据的Pandas DataFrame,Timestamp为索引,数据示例如下:

Timestamp                      Spd              Pres                              
2013-06-13 00:00:00            9.630            650.4
2013-06-13 01:00:00            9.309            650.4
2013-06-13 02:00:00            8.421            650.4

希望将数据按月份拆分,计算每个月份的平均值以构建平均代表性年份,请问有没有无需通过循环遍历每月小时数来拆分DataFrame的好方法?

解决方案

可以利用Pandas的索引时间属性结合分组聚合实现,无需手动循环。优化后的代码如下:

import pandas as pd

# 直接从Timestamp索引提取月份和年份,无需额外apply操作
df['Month'] = df.index.month
df['Year'] = df.index.year

# 按月份和年份分组计算均值
monthly_yearly_mean = df.groupby(['Month', 'Year']).mean()
print(monthly_yearly_mean)

说明

  • 原代码中通过apply提取月份和年份的方式可简化,直接使用df.index.month和df.index.year即可获取对应数值,更高效简洁。
  • groupby(['Month', 'Year'])会将数据按「月份-年份」的组合分组,调用mean()就能得到每个月的小时数据平均值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 14:50:14