Python Pandas MA用于不规则数据帧

时间:2017-06-10 02:18:30

标签: python pandas

我想计算以ms为时间戳的数据集的滚动移动平均值,但是不规则。对于2天的数据帧,不规则数据集具有~36K记录。如果我重新采样到ms条,我融化了计算机,并成为32M条。

要明确,请考虑从熊猫/users/me/ route中获取的以下数据集: (我已将NaN更改为0)

df = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]},index = 
     [pd.Timestamp('20130101 09:00:00'),
                        pd.Timestamp('20130101 09:00:02'),
                        pd.Timestamp('20130101 09:00:03'),
                        pd.Timestamp('20130101 09:00:05'),
                        pd.Timestamp('20130101 09:00:06')])

df.rolling('2s').mean()
                       B
2013-01-01 09:00:00  0.0
2013-01-01 09:00:02  1.0
2013-01-01 09:00:03  1.5
2013-01-01 09:00:05  0.0
2013-01-01 09:00:06  2.0

但我喜欢的答案是:

df.rolling('2s').mean()
                           B
    2013-01-01 09:00:00  0.0
    2013-01-01 09:00:02  0.5
    2013-01-01 09:00:03  1.5
    2013-01-01 09:00:05  1.0
    2013-01-01 09:00:06  2.0

这有条目前滚(ffill样式)以计算均值。我想解决这个问题,而不会爆炸内存使用情况,而不是顺序完成它(我知道我可以做)。

我原以为:

df.rolling('2s', freq='1s').mean()

可以工作,但它会抛出一个错误,期望7行,但只有5行(ValueError:传递值的形状是(1,5),索引暗示(1,7))。

如果我使用pad重新采样到另一个数据帧,然后执行滚动操作,则可以:

df2 = df.resample('1s').pad()
df2.rolling('2s').mean()

这是否有内置?或者我只是迭代?

0 个答案:

没有答案