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

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 关于IMageEnView 图标定位问题
  • ¥20 求解答(matlab)
  • ¥30 ffmpeg库使用过程中遇到的问题
  • ¥15 pyqt5 中python如何通过Qtwebchannel主动发消息给web前端
  • ¥15 关于HTML中title获取xml内容的问题
  • ¥15 fanuc机器人PRIO083数字信号未复原错误,如何解决?
  • ¥20 如何为现有电路板增加远程控制功能
  • ¥15 UE5打包失败,求解决
  • ¥15 请问STM32G431的CANOPEN协议函数怎么写
  • ¥15 graphpad prism 三因素重复测定报错