计算数据帧中精确小时的间隔平均值

2024-04-25 16:57:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个以时间戳为索引的数据帧,数据的频率为10分钟。你知道吗

我找不到一种方法来计算从h - 30minh + 30min的时间间隔的平均值,其中h都是精确的小时数。你知道吗

In[1]: date_index = pd.date_range('2015-12-01 00:00:00', freq='10Min', periods=70)
       df = pd.DataFrame(np.random.rand(70), index= date_index, columns=['Data'])
       df.head(10)

Out[1]:                  Data
2015-12-01 00:00:00  0.653885
2015-12-01 00:10:00  0.605046
2015-12-01 00:20:00  0.438547
2015-12-01 00:30:00  0.062426
2015-12-01 00:40:00  0.415468
2015-12-01 00:50:00  0.458047
2015-12-01 01:00:00  0.523140
2015-12-01 01:10:00  0.736519
2015-12-01 01:20:00  0.934904
2015-12-01 01:30:00  0.799523

我在考虑用for循环测向指数作为范围,查找每一个精确的小时,然后计算特定时间间隔的平均值,但是我找不到一个简单的方法来索引这个小时的数据。在熊猫身上有没有一个简单的方法?谢谢。你知道吗


Tags: 数据方法indfdatadateindex间隔
1条回答
网友
1楼 · 发布于 2024-04-25 16:57:38

这里不确定确切的预期输出,但您可以先每半小时重新采样一次数据,然后找到滚动平均值,得到1.5小时周期的平均值。你知道吗

df.resample('30T').mean().rolling(3, center = True).mean()

    Data
2015-12-01 00:00:00 NaN
2015-12-01 00:30:00 0.419649
2015-12-01 01:00:00 0.427544
2015-12-01 01:30:00 0.414868
2015-12-01 02:00:00 0.545400
2015-12-01 02:30:00 0.643669
2015-12-01 03:00:00 0.626265
2015-12-01 03:30:00 0.581142
2015-12-01 04:00:00 0.508442
2015-12-01 04:30:00 0.511635
2015-12-01 05:00:00 0.452952
2015-12-01 05:30:00 0.473471
2015-12-01 06:00:00 0.400974
2015-12-01 06:30:00 0.358676
2015-12-01 07:00:00 0.244290
2015-12-01 07:30:00 0.343688
2015-12-01 08:00:00 0.456954
2015-12-01 08:30:00 0.548263
2015-12-01 09:00:00 0.431159
2015-12-01 09:30:00 0.378981
2015-12-01 10:00:00 0.407988
2015-12-01 10:30:00 0.496860
2015-12-01 11:00:00 0.508232
2015-12-01 11:30:00 NaN

相关问题 更多 >