将一列中的值分组,结果是将b列的总和除以A列的总和

时间:2019-03-27 19:07:22

标签: pandas

我有一个包含多列和数千行的数据框。一列包含细分分类(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

2 个答案:

答案 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()))