【发布时间】:2019-02-09 19:55:08
【问题描述】:
关于我要问的问题,已经有很多关于堆栈溢出的问题,但我有一点疑问,因此我认为我的问题有所不同。在我的时间序列中,我想获得每分钟的平均值。我的时间序列如下所示:-
time duration
2018-08-26T14:00:00.000Z 0.22
2018-08-26T14:00:00.000Z 0.23
2018-08-26T14:00:00.000Z 2.05
2018-08-26T14:00:00.000Z 2.5
2018-08-26T14:00:00.000Z 3.0
2018-08-26T14:00:01.000Z 30.4
2018-08-26T14:00:01.000Z 30.4
2018-08-26T14:00:01.000Z 30.4
2018-08-26T14:00:02.000Z 30.4
2018-08-26T14:00:02.000Z 30.4
2018-08-26T14:00:03.000Z 30.4
.....
2018-08-26T14:01:03.000Z 30.4
2018-08-26T14:01:03.000Z 30.4
2018-08-26T14:02:03.000Z 30.4
2018-08-26T14:02:03.000Z 30.4
由于数据来自弹性搜索,我在同一秒内进行了多次观察。从 Multiple 我的意思是我可能有 100 次观察,从一秒钟的时间戳。
我正在使用下面的代码来执行我从Group index by minute and compute average 获得的平均每分钟持续时间
df.index = pd.DatetimeIndex(df.time)
df.groupby([df.index.values.astype('<M8[m]')])['duration'].mean()
我的输出如下所示
2018-08-26 14:00:00 0.151470
2018-08-26 14:01:00 0.144745
2018-08-26 14:02:00 0.147503
2018-08-26 14:03:00 0.156921
2018-08-26 14:04:00 0.142978
2018-08-26 14:05:00 0.167170
2018-08-26 14:06:00 0.156233
2018-08-26 14:07:00 0.140044
2018-08-26 14:08:00 0.135376
2018-08-26 14:09:00 0.161247
2018-08-26 14:10:00 0.134211
2018-08-26 14:11:00 0.179065
2018-08-26 14:12:00 0.145470
2018-08-26 14:13:00 0.145623
2018-08-26 14:14:00 0.139927
2018-08-26 14:15:00 0.138283
2018-08-26 14:16:00 0.137545
2018-08-26 14:17:00 0.140346
我只是想确保我这样做是否正确,因为我在一秒钟内有多个实例,我担心它是否正在考虑所有这些。
我将不胜感激。
【问题讨论】:
-
您是否尝试过手动过滤掉一分钟的数据并验证您对该子集的手动结果是否与您从该代码中获得的结果相同?
-
@scnerd 我做了,不幸的是它不同:(
-
有趣.....我从来没有处理过这种数据,但正如你已经告诉你的那样,它已经过验证并且工作不正确。
-
重复的秒是否代表重复数据?或者没有足够时间精度的附加数据。只有你能提供这个答案。
标签: python pandas time-series pandas-groupby