使用rolling_apply对pandas的Python自定义函数

使用rolling_apply对pandas的Python自定义函数,第1张

使用rolling_apply对pandas的Python自定义函数

rolling_apply
将numpy数组传递给应用的函数(当前),到0.14时它应该传递一帧。问题在这里

因此,重新定义函数以在numpy数组上工作。(您当然可以在此处构造一个Dataframe,但是您的索引/列名称将不同)。

In [9]: def gm(df,p):   ...:     v = ((np.cumprod(df+1))-1)*p   ...:     return v[-1]   ...:

如果要在自定义函数中使用更多的熊猫函数,请执行此 *** 作(请注意,调用帧的标记 不会 通过ATM传递)。

def gm(arr,p):    df = Dataframe(arr)    v =(((df+1).cumprod())-1)*p    return v.iloc[-1]

通过lambda传递

In [11]: pd.rolling_apply(tmp,50,lambda x: gm(x,5)).tail(20)Out[11]:         A         B2006-06-04  0.004207 -0.0021122006-06-05  0.003880 -0.0015982006-06-06  0.003809 -0.0022282006-06-07  0.002840 -0.0039382006-06-08  0.002855 -0.0049212006-06-09  0.002450 -0.0046142006-06-10  0.001809 -0.0044092006-06-11  0.001445 -0.0059592006-06-12  0.001297 -0.0068312006-06-13  0.000869 -0.0078782006-06-14  0.000359 -0.0081022006-06-15 -0.000885 -0.0079962006-06-16 -0.001838 -0.0082302006-06-17 -0.003036 -0.0086582006-06-18 -0.002280 -0.0085522006-06-19 -0.001398 -0.0078312006-06-20 -0.000648 -0.0078282006-06-21 -0.000799 -0.0076162006-06-22 -0.001096 -0.0067402006-06-23 -0.001160 -0.006004[20 rows x 2 columns]


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5647355.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存