我想在过去的15分钟内计算一列的滚动平均值(称之为c1)。 c1具有十进制数的数据类型。我导入了np和pd。我所做的是使用c2 = c1.rolling('900s').mean()
,因为15分钟* 60秒/分钟= 900秒,这是有效的。但我还是想知道分钟的时间格式。有人可以帮我弄这个吗?此外,如果有人可以为我提供其他时间格式,例如年,月,季度,日,小时,那将是最好的。 THX。
答案 0 :(得分:0)
假设我理解正确:
首先,我使用高斯噪声数据列构建一个以十五分钟运行的时间索引的数据帧。
>>> import pandas as pd
>>> times = [pd.Timestamp(1996,5,6,11,m) for m in range(1,16)]
>>> import random
>>> v = [random.gauss(0,1) for m in range(1,16)]
>>> df = pd.DataFrame({'V': v}, index=times)
然后我复制你的结果。
>>> df.rolling('900s').mean()
V
1996-05-06 11:01:00 -1.263849
1996-05-06 11:02:00 -0.806934
1996-05-06 11:03:00 0.344626
1996-05-06 11:04:00 0.497085
1996-05-06 11:05:00 0.549562
1996-05-06 11:06:00 0.554746
1996-05-06 11:07:00 0.630223
1996-05-06 11:08:00 0.650979
1996-05-06 11:09:00 0.575184
1996-05-06 11:10:00 0.576052
1996-05-06 11:11:00 0.438371
1996-05-06 11:12:00 0.577996
1996-05-06 11:13:00 0.392422
1996-05-06 11:14:00 0.292866
1996-05-06 11:15:00 0.211225
现在我也可以获得5分钟的手段。为此,我使用了Offset Aliases提供的文档。
>>> df.rolling('5min').mean()
V
1996-05-06 11:01:00 -1.263849
1996-05-06 11:02:00 -0.806934
1996-05-06 11:03:00 0.344626
1996-05-06 11:04:00 0.497085
1996-05-06 11:05:00 0.549562
1996-05-06 11:06:00 0.918466
1996-05-06 11:07:00 1.205086
1996-05-06 11:08:00 0.834790
1996-05-06 11:09:00 0.637663
1996-05-06 11:10:00 0.602542
1996-05-06 11:11:00 0.298720
1996-05-06 11:12:00 0.504877
1996-05-06 11:13:00 -0.021270
1996-05-06 11:14:00 -0.215305
1996-05-06 11:15:00 -0.518430