2016-07-07 16 views
1

私はSTDとの相関を計算する、私が何らかの理由のためにいくつかの資産Pythonのパンダ、行によって外積、(N、K)データフレームの(N、K、K)パネル

rtns = pd.util.testing.makeTimeDataFrame(5000) # 5000 x 4 
stds = pd.rolling_std(rtns, 20) # 5000 x 4 
corMat = pd.ewmcorr(rtns, com = 50) # 5000 x 4 x 4 

があると共分散行列を再構築する。私は、メインの心配がnp.outerは、列名を失い、性感染症やcorMatで資産が異なって注文された場合、それが不一致を引き起こす可能性があるということであるループ

out = corMat * 0 
for (d,v) in stds.iterrows(): 
    out[d] = np.outer(v,v) * corMat[d] 

でこれを行うことができます。もちろん、ループは遅いです。

このループを置き換えるためのパンダ/ numpy操作はありますか(自動的にアセット名の一致を処理しますか)?

答えて

0

あなたがしてvのインデックスを保存することができます。

out[d] = pd.DataFrame(np.outer(v, v), v.index, v.index) * corMat[d] 
関連する問題