我有一个包含多列和数千行的数据框。一列包含细分分类(ScoreSeg)。其他列包含与该行中项目相关的不同值。我想对“ ScoreSeg”进行分组,(“ PredMbrs”列的总和)/(“ b”列:“ EstMbrs”的总和)
我尝试了以下操作:
pr.groupby('ScoreSeg')['PredMbrs'].sum()/pr['EstMbrs'].sum()
实际结果是:
ScoreSeg
1-3 0.131708
4-5 0.060665
6-6 0.609900
7-8 0.167228
9-11 0.100284
名称:PredMbrs,dtype:float64
预期结果为:
1-3 0.954568997
4-5 1.011131346
6-6 1.056760686
7-8 1.176788844
9-11 1.211452952
答案 0 :(得分:1)
您不应将groupby
与两个单独的函数链接
s=(pr.groupby('ScoreSeg')['PredMbrs','EstMbrs'].sum())
s['PredMbrs']/s['EstMbrs']
答案 1 :(得分:0)
我认为您可以在groupby()上使用apply():
df.groupby(''ScoreSeg'').apply(lambda x: x['PredMbrs'].sum()/
float(x['EstMbrs'].sum()))