如何使用pandas groupby对半小时时间序列按时段聚合求均值
半小时粒度聚合实现方法
你可以通过两种方式实现半小时时段的均值聚合,全程不会损失原始数据:
- 方法1:沿用你现有写法,增加分钟维度分组
# 按小时、分钟双维度分组,得到全天48个半小时时段的对应均值 mean_half_hour = energy_2018.groupby( [energy_2018["Date_Time"].dt.hour.rename("hour"), energy_2018["Date_Time"].dt.minute.rename("minute")] )["Metered Electricity (MWh)"].mean().reset_index() # 如需生成绘图用的时段标签,可额外拼接小时、分钟为HH:MM格式 mean_half_hour["time_slot"] = mean_half_hour.apply( lambda x: f"{x['hour']:02d}:{x['minute']:02d}", axis=1 )
- 方法2:直接对时间戳做半小时截断后分组,写法更简洁
# 将时间戳统一截断到半小时精度,提取时分部分后分组求均值 mean_half_hour = energy_2018.groupby( energy_2018["Date_Time"].dt.floor("30min").dt.time )["Metered Electricity (MWh)"].mean().reset_index()
第二种方法输出的Date_Time列本身就是HH:MM:SS格式的时间值,可直接作为绘制全天走势图表的X轴使用。
内容的提问来源于stack exchange,提问作者Luke Hickinbotham
相关产品推荐
相关产品推荐

