我如何使用pandas.ewm.cov的输出?

时间:2017-12-10 13:33:20

标签: python pandas

如何使用pandas.ewm.cov函数的输出。我认为有些函数允许你直接在返回的形式中使用它来进行乘法,但我尝试的任何东西似乎都无法工作。

例如,假设我采用最小用例,股票X和Y返回DF1中的时间序列,因此我们估计一个ewma协方差矩阵,然后得到位置A和B的投资组合的方差估计(在DF2中给出)我需要计算$ x ^ TC x $,但是我无法在不编写for循环的情况下找到执行此操作的命令?

# Python 3.6,  pandas 0.20
import pandas as pd
import numpy as np
np.random.seed(100)
DF1 = pd.DataFrame(dict(X = np.random.normal(size = 100), Y = np.random.normal(size = 100)))
DF2 = pd.DataFrame(dict(A = np.random.normal(size = 100), B = np.random.normal(size = 100)))
COV = DF1.ewm(10).cov()

print(DF1)
print(COV)

# All of the following are invalid
print(COV.dot(DF2)) 
print(DF2.dot(COV)) 
print(COV.multiply(DF2)) 

1 个答案:

答案 0 :(得分:0)

我能想到的最好的是这段丑陋的代码

library(tidyr)

complete(df, trial, nesting(id, day))

我希望有一个很好的方法来做到这一点......