我有一个大数据集:
Time, Value
01.01.2018 00:00:00.000, 5.1398
01.01.2018 00:01:00.000, 5.1298
01.01.2018 00:02:00.000, 5.1438
01.01.2018 00:03:00.000, 5.1228
01.01.2018 00:04:00.000, 5.1168
.... , ,,,,
31.12.2018 23:59:59.000, 6.3498
数据是minute
从first
一年中的last
某天到一年中的某天的数据
我想用来Pandas
查找每5天的平均值。例如:
从平均01.01.2018 00:00:00.000
到05.01.2018 23:59:59.000
了05.01.2018
接下来的平均值将来自02.01.2018 00:00:00.000
于6.01.2018 23:59:59.000
对06.01.2018
接下来的平均值将来自03.01.2018 00:00:00.000
于7.01.2018 23:59:59.000
对07.01.2018
等等...
对于给定的一天,有24小时* 60分钟= 1440个数据点。因此,我需要获取1440个数据点的平均值* 5天= 7200个数据点。
最终的DataFrame将如下所示:
Time, Value
05.01.2018, 5.1398
06.01.2018, 5.1298
07.01.2018, 5.1438
.... , ,,,,
31.12.2018, 6.3498
底线是计算从今天到过去5天的平均值,平均值如上所示。
我试图通过Python循环进行迭代,但是我想要比Pandas更好的东西。
正如您所说的,您每分钟都有数据,即每天总是有相同数量的值(1440),那么您可以简单地采用日均值,然后在这些日均值上采用5天滚动窗口的均值。
示例(值是一年中的运行分钟数,从0开始):
s = pd.Series(pd.date_range('2018-01-01', '2018-12-31 23:59', freq='1T'))
df = pd.DataFrame(s.index.values, index=s, columns=['Value'])
df.groupby(df.index.floor('d'))['Value'].mean().rolling(5).mean().dropna()
结果:
2018-01-05 3599.5
2018-01-06 5039.5
2018-01-07 6479.5
2018-01-08 7919.5
...
2018-12-28 517679.5
2018-12-29 519119.5
2018-12-30 520559.5
2018-12-31 521999.5
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句