宇航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日

悬赏问题

  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥15 Attention is all you need 的代码运行