穷遛客 2021-04-10 22:11 采纳率: 77.8%
浏览 87
已采纳

分组计算自定义公式(函数)

本人想分组按照年份(WAVE)计算我自定义的公式(函数),不知如何操作,请教各位。

df_2021.groupby('WAVE')
CIs = 2*sum(df_2021['bmi3']*df_2021['fractional_rank'])/(df_2021['bmi3'].count()*df_2021['bmi3'].mean())-1
CIs

这计算出来的是总体(全样本)的结果,就是想把两个代码合起来。

想分年份计算

我自定义函数后,也不行,试问原因在哪里?

def CIs(x,y):
    return 2*sum(x*y)/(x.count()*x.mean())-1
grouped = df_2021.groupby('WAVE')
CIs(grouped['bmi3'],grouped['fractional_rank'])

  • 写回答

2条回答 默认 最新

  • CSDN专家-孙老师 2021-04-10 23:42
    关注

    这个问题需要groupby和apply结合使用,可以这样写代码:

    def CIs(x):
        return 2*sum(x['bmi3']*x['f_r'])/(x['bmi3'].count()*x['bmi3'].mean())-1
    
    df_2021.groupby('WAVE').apply(CIs)
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?