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

如何绘制分钟级分辨率的月度日均功率曲线?

分钟级月度日均功率曲线的无循环实现方法

你之前按index.hour分组能得到小时级日均曲线,是因为它把每天同一小时的数据聚合并计算均值。但单独按index.minute分组会出错——这是因为它会把所有小时的第N分钟(比如00:01、01:01…23:01)归为一组,而不是你需要的「每天的HH:MM这个具体时间点」的日均数据。

下面是两种无循环的最优实现方式:

方法1:利用index.time直接分组

datetime索引的time属性会返回HH:MM:SS格式的时间对象(你的数据是分钟级,所以就是HH:MM),用它分组刚好对应一天中每个具体的分钟时间点:

# 计算July数据集的分钟级日均功率
minutely_daily_avg = df_jul.groupby(df_jul.index.time)['Power'].mean()

# 绘制曲线
plt.plot(minutely_daily_avg, label='July Minutely Avg')
plt.xlabel('Time of Day')
plt.ylabel('Average Power')
plt.legend()
plt.show()

这种方法最直观,x轴直接显示HH:MM格式的时间,无需额外转换。

方法2:通过「一天内的分钟偏移量」分组

如果需要更灵活的x轴控制,可以计算每个时间点在一天中的总分钟数(0到1439,对应00:00到23:59),再分组计算均值:

# 添加列存储一天内的分钟数
df_jul['minute_of_day'] = df_jul.index.hour * 60 + df_jul.index.minute

# 按分钟数分组计算日均功率
minutely_daily_avg = df_jul.groupby('minute_of_day')['Power'].mean()

# 绘制时将分钟数转换为时间格式(可选,让x轴更友好)
plt.plot(pd.to_datetime(minutely_daily_avg.index, unit='m', origin='today'), 
         minutely_daily_avg, label='July Minutely Avg')
plt.xlabel('Time of Day')
plt.ylabel('Average Power')
plt.legend()
plt.show()

两种方法都利用了pandas的内置分组优化,完全不需要循环,效率远高于逐分钟计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 19:32:34