如何将DataFrame的5分钟间隔数据转换为15分钟间隔均值数据?
实现15分钟时间步长的重采样
有两种简洁的方法可以实现你的需求,推荐优先使用第一种专门的时间重采样工具:
方法一:使用resample(推荐)
pandas的resample是专为时间序列重采样设计的API,操作直观且不易出错:
- 先确保
Zeitpunkt列是datetime类型,如果不是先转换:import pandas as pd df["Zeitpunkt"] = pd.to_datetime(df["Zeitpunkt"]) - 设置时间列为索引,按15分钟间隔聚合,指定需要取均值的列:
df_15min = df.set_index("Zeitpunkt").resample("15T")[["Verbrauch (kWh)", "Leistung"]].mean().reset_index()15T是15 minutes的缩写,pandas支持这类简洁的时间偏移量写法reset_index()可以把时间索引重新变回普通列,保持和原数据结构一致
方法二:基于你原有的groupby思路修改
如果你想沿用之前的分组逻辑,只需要把时间戳向下取整到最近的15分钟区间即可:
df_15min = df.groupby(df["Zeitpunkt"].dt.floor("15T"))[["Verbrauch (kWh)", "Leistung"]].mean().reset_index()
dt.floor("15T")会把每个5分钟的时间戳对齐到所属15分钟区间的起始时间(比如2024-01-01 00:05会转为2024-01-01 00:00,2024-01-01 00:16转为2024-01-01 00:15),同一区间的所有数据会被自动分到一组。
内容的提问来源于stack exchange,提问作者luscgu00
相关产品推荐
相关产品推荐

