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

求助:按24小时周期提取Load最大值及对应时间(代码异常)

修正每日峰值负荷提取代码的方法

原代码的问题分析

  • 定位峰值行错误:df3.loc[max_Load.index * 24]这一步逻辑错误,max_Load.index是分组后的组序号(0、1、2...对应每一天),乘以24得到的是每天第0小时的索引,而非峰值负荷所在的实际小时索引。max_Load.values才是原DataFrame中每日Load最大值对应的行索引,应该用这个值来定位数据。
  • 语法错误:max_df['max_Load'] = max_Load.valuesmax_df末尾多了max_df,属于无效语法,且逻辑上无需重复赋值——直接提取峰值行即可获取Load最大值。

修正后的代码(假设索引为连续小时数)

如果你的df3索引是从0开始的连续小时数(每一行对应1小时),可以用以下代码:

# 按24小时分组,获取每日Load最大值对应的原索引(小时数)
max_load_indices = df3.groupby(df3.index // 24)['Load'].idxmax()

# 提取峰值所在的完整行数据,包含对应时间、温度、Load等信息
max_df = df3.loc[max_load_indices].reset_index(drop=False)

# 可选:将原索引转为“当日小时数”列,方便直观查看
max_df['hour_of_day'] = max_df.index % 24
# 可选:重命名Load列为max_Load,明确标识峰值
max_df = max_df.rename(columns={'Load': 'max_Load'})

进阶优化(如果索引是时间戳类型)

如果你的DataFrame索引是datetime类型(而非纯数字小时数),分组逻辑可以更精准:

# 按日期分组,获取每日Load最大值对应的时间戳索引
max_load_indices = df3.groupby(df3.index.date)['Load'].idxmax()

# 提取峰值行数据
max_df = df3.loc[max_load_indices].reset_index(drop=False)

# 直接提取当日小时数
max_df['hour_of_day'] = max_df.index.hour

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 14:40:02