熊猫滚动应用似乎做错了事

时间:2018-07-30 02:40:59

标签: python pandas rolling-computation

考虑一个pandas数据帧,例如,这样生成:

dog = np.random.randn(100, 10)
df2 = pd.Dataframe(dog)

现在,如果我想获得滚动协方差,那就是彩虹和独角兽:

cs = df2.rolling(20).cov()

但是现在,假设我想变得聪明一点,并因此计算出健壮的协方差:

def cov_robust(X):
    oas = sklearn.covariance.OAS()
    oas.fit(X)
    return pd.DataFrame(oas.covariance_, 
index=X.columns, columns=X.columns)

然后是csr = df2.rolling(20).apply(cov_robust)

此错误错误地声称它在期望2d数组时获得了1d数组。我已经假设(基于cov()的示例)要应用的函数的参数是整个窗口(在本例中为20 x 10数组),但显然不是。欢迎任何启发。

0 个答案:

没有答案