宇航Deviation 2021-07-19 14:05 采纳率: 100%
浏览 306
已结题

python 的groupby.rolling.apply 可以进行组间运算吗?

def TM(df):
    alpha=0
    beta2=0
    a=pd.DataFrame()
    temp=pd.DataFrame(df)
    temp['mret2']=temp['mret'].values**2
    x=temp[['mret','mret2']]
    y=temp['ret']
    X=sm.add_constant(x)
    result=sm.OLS(y,X).fit()
    a['params']=result.params
    a['tvalues']=result.tvalues
    if a['params'][0]>0 and a['tvalues'][0].abs()>2:
        alpha=1
    if a['params'][2]>0 and a['tvalues'][2].abs()>2:
        beta2=1
    return (alpha,beta2)

sig1['alpha','beta2'] = rets.groupby('ticker')[['ret','mret']].rolling(100).apply(beta2).values

我本来想用for语句做rolling regression,但效率太低而且样本量太大,跑程序太慢了。现在想改成groupby.rolling.apply 方法,先对ticker分组再组内的运算rolling regression,但是貌似该对象不是dataframe,所以无法套用自定义函数进行组间运算。请问有没有好的方法解决

img

  • 写回答

2条回答 默认 最新

  • 有问必答小助手 2021-07-20 10:55
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答

    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。

    ​​​​因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月21日
  • 已采纳回答 9月13日
  • 创建了问题 7月19日

悬赏问题

  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题