首页 > 解决方案 > 使用 Hour 作为中点将 Pandas DataFrame 重新采样到 Hourly

问题描述

我有一个以 5 分钟为频率测量温度的数据框。我想重新采样这个数据集以找到每小时的平均温度。

这通常使用df['temps'].resample('H', how='mean')但是这会平均落在小时内的所有值 - 例如,使用“12”是小时的所有时间。我想要从一小时的任何一侧(或最接近实际小时的时间)获取所有值的东西,并以这种方式找到平均值。换句话说,对于 1200 的重采样时间步长,使用从 1130 到 1230 的所有温度值来计算平均值。

下面的示例代码用于创建测试数据框:

index = pd.date_range('1/1/2000', periods=200, freq='5min')
temps = pd.Series(range(200), index=index)
df = pd.DataFrame(index=index)
df['temps'] = temps

这可以使用内置resample方法完成吗?我确定我在使用之前已经完成了,pandas但找不到任何参考。

标签: pythonpandas

解决方案


看来你需要:

print (df['temps'].shift(freq='30Min').resample('H').mean())

推荐阅读