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

本人想分组按照年份(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'])

这个问题需要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)

 

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632