Pandas 在具有多个输出的数据帧上应用滚动自定义函数
我有以下数据帧:mydfPandas 在具有多个输出的数据帧上应用滚动自定义函数,pandas,apply,Pandas,Apply,我有以下数据帧:mydf Date A B C 1973-01-01 0.002 -0.003 0.004 1973-02-01 0.003 -0.005 0.006 ... 我有一个函数,它接受数据帧、日期字段和协方差类型 并返回平均回报、协方差矩阵和年度化协方差矩阵 def myfunc(mydf, dtfield, typecov): #does some computations based on type either
Date A B C
1973-01-01 0.002 -0.003 0.004
1973-02-01 0.003 -0.005 0.006
...
我有一个函数,它接受数据帧、日期字段和协方差类型
并返回平均回报、协方差矩阵和年度化协方差矩阵
def myfunc(mydf, dtfield, typecov):
#does some computations based on type either equal weighted or exponentially weighted
...
...
return eret, cov, covA
对myfunc的调用(mydf,'Date','e')
为了实现这一点,我尝试在pandas中使用滚动功能,使用250窗口,但我不确定如何做到这一点
当我使用for循环时,它工作
最小窗口=250
for i in range(minwindow, minwindow+5):
temp = mydf[i-minwindow:i]
eret, c, cA = myfunc(temp,dtfield, typeCov)
谢谢我不确定我是否正确理解您的参数数据字段,您可以尝试mydf.rolling(250).apply(myfunc,args=(['A','B','C'],'equal_weighted'))日期字段只是为了标识我的数据框架中的日期列。如果我使用for循环,它会起作用,但需要花费很多时间