我有一个包含几个时间序列的数据框:
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
现在,我想为每个
std
和autocorr
计算。我知道我可以单独进行:
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/