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