具有时间偏移熊猫的滚动平均值

问题描述 投票:0回答:1

我有一个pandas中的时间戳和值的数据集。时间戳之间的间隔在大约一年的总时间跨度内是~12秒,但有时会有缺失点(即,时间序列是不规则的,因此我不能使用固定的窗口大小)。

我想计算超过1分钟间隔的值的滚动平均值,但我没有得到我预期的行为。我发现了一个类似的问题here,但那是使用总和和前熊猫0.19.0。我正在使用Pandas 0.23.4。

样本数据

Time, X
2018-02-02 21:27:00,    75.4356
2018-02-02 21:27:12,    78.29821
2018-02-02 21:27:24,    73.098345
2018-02-02 21:27:36,    78.3331
2018-02-02 21:28:00,    79.111

请注意,2018-02-02 21:27:48缺失。

对于滚动总和,我可以用0填充缺失值但是对于均值,我不希望将缺失点计为实际数据点(例如,我希望窗口为和(在给定间隔内的数据点) )/间隔中的数据点数)。

我想在不同的时间段(即1分钟,5分钟,15分钟,1小时等)进行此操作。

我得到的最接近的实际值是:

df['rolling_avg']=df.rolling('1T',on='Time').X.mean()

我的理解是,这将是1分钟的滚动平均值。

但是,我不知道如何解释输出。我本来期望NaNs在前1 + 1分钟,因为没有什么可以基于滚动平均值而是我有值。

产量

    Time                X         rolling_avg
0   2018-02-02 21:27:00 75.4356   75.435600
1   2018-02-02 21:27:12 78.29821  76.866905
2   2018-02-02 21:27:24 73.098345 75.610718
3   2018-02-02 21:27:36 78.3331   76.291314
4   2018-02-02 21:28:00 79.111    77.210164

基本上,在这个输出中,df[1].rolling_avg(Value[0]+Value[1])/2,虽然间隔是12秒,而不是1分钟。

有没有办法做我想做或做的事情我需要写一个for循环手动执行此操作?

python pandas dataframe moving-average rolling-average
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.