我有一个包含几个时间序列的数据框:

df.head()
             0         1         2
time
0.0   0.365035  0.365035  0.365035
1.0   0.349999  0.349999  0.349999
2.0   0.340998  0.340998  0.340998
3.0   0.333877  0.333877  0.333877
4.0   0.326411  0.326411  0.326411


现在,我想为每个stdautocorr计算。

我知道我可以单独进行:

df[0].aggregate(['std', 'autocorr'])
Out[10]:
std         0.081165
autocorr    0.995285


对于std,它可以工作:

df.unstack().groupby(level=0).aggregate(['std'])
Out[11]:
        std
0  0.081165
1  0.081165
2  0.081165


但是当我尝试对autocorr做同样的事情时,我得到

df.unstack().groupby(level=0).aggregate(['autocorr'])
AttributeError: Cannot access callable attribute 'autocorr' of 'SeriesGroupBy' objects, try using the 'apply' method


为什么会这样呢?什么是正确的方法/解决方法?

最佳答案

autocorr很可能没有实现为SeriesGroupBy类的方法。

尝试以下方法:

In [15]: df.unstack().groupby(level=0).agg(['std', pd.Series.autocorr])
Out[15]:
        std  autocorr
0  0.014972  0.991893
1  0.014972  0.991893
2  0.014972  0.991893

关于python - 在一系列序列上应用autocorr,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50444987/

10-12 16:33