我对数据分组(按WAVE,即年份分组)排序(按最终收入排序)后,用count之后,想将各组每一列位置值(每组对应的索引)除以每一组的总数,得到分数秩次(fractional rank),请问应该怎么操作,怎么调用count得到结果,或者其他命令之间得到吗?
#按年份和收入排序
df_2021['rank_fi'] = df_2021.groupby(['WAVE'])['final_income'].rank()
co = df_2021.groupby(['WAVE'])['final_income'].count()
df_2021['r'] = df_2021.rank_fi/co
print(co)
print(df_2021)
df_2021['rank_fi'] = df_2021.groupby(['WAVE'])['final_income'].rank()
df_2021['count']= df_2021[['WAVE','final_income']].sort_values(by='final_income').groupby('WAVE').transform(lambda x:len(x))
df_2021['fractional_rank'] = df_2021['rank_fi']/df_2021['count']
是指的按年份分组后, 每组分别计算, 计算逻辑是用每行索引/ 这组的记录条数, 试下这个:
data['fractional rank']= data[['WAVE','final_income']].sort_values(by='final_income').groupby('WAVE').transform(lambda x: x.index / len(x))
这个要多条语句分步处理吧,用存储过程或循环语句结合使用。
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632