栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用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]


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/641566.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号