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

如何用Pandas按小时聚合计算download Mb/s列的均值

解决方案:按小时分组计算下载速度均值

嘿,这个需求其实不用反复折腾between_time(),用Pandas的分组功能就能一步搞定,效率还更高,尤其你有6700多行数据的情况!

核心思路

既然你的Timestamp已经是datetime类型的索引了,我们可以直接从索引里提取**小时(0-23)**作为分组依据,然后对download Mb/s列求均值,最后调整成你要的格式就行。

具体代码

import pandas as pd

# 假设你的原始DataFrame名为df,且Timestamp已设为datetime类型索引
# 如果还没转成datetime索引,先执行这一步(可选)
# df.index = pd.to_datetime(df.index)

# 按小时分组,计算下载速度的均值
hourly_mean_df = df.groupby(df.index.hour)['download Mb/s'].mean().reset_index()

# 重命名列名到你需要的格式
hourly_mean_df.columns = ['HOUR', 'mean']

# 查看最终结果
print(hourly_mean_df)

代码细节解释

  1. df.index.hour:自动把每个时间戳的小时数(0到23)提取出来,作为分组的标识
  2. groupby(...)['download Mb/s'].mean():按小时分组后,仅对下载速度列计算均值,避免多余计算
  3. reset_index():把原本作为分组索引的小时数转成普通列,防止结果是Series类型
  4. 最后重命名列名,完全匹配你要的HOUR和mean格式

示例效果

用你给出的两行测试数据运行后,会得到:

HOUR       mean
0     5  13.956026
1    11  12.550000

这个方法比循环遍历每个小时调用between_time()高效得多,Pandas的分组操作是底层优化过的,处理6k行数据毫无压力~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 12:37:46