列上的多个聚合大小和意义在不同的pandas groupby上?

时间:2017-06-13 19:20:23

标签: python pandas

到目前为止,我已经引用了类似的问题,但却无法看到它: 我有一个数据帧:(eval_datan)

    ccs5    correct aggodds
0   258     False   0.620068
1   258     True    0.461638
2   126     False   0.243570
3   48      False   0.420276

我做了一个小组来查看正确和错误的数量,如下所示:

 eval_datan.groupby(['ccs5','correct']).size()

产生:

ccs5  correct
1     False        28
2     False       116
      True        148
3     False       240
      True          2
4     False       400
      True          5

我想添加一个使用mean聚合aggodds列的列,否则通过ccs和IE正确隔离IE

愚蠢地,我希望以下内容能奏效。它没有(追溯)(KeyError:' aggodds')

eval_datan.groupby(['ccs5','correct']).size()['aggodds'].mean()

表达此内容的最简洁方式是什么? 例如:

eval_datan.groupby('ccs5').agg({'correct':'size','aggodds':['mean']})

没有小计按"正确"状态

    correct aggodds
    size    mean
    ccs5        
1   28  0.320001
2   264 0.347982
3   242 0.357944
4   405 0.366225
5   19  0.323990

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找:

eval_datan.groupby(['ccs5', 'correct'], as_index=False)['aggodds'].agg({'n':'count','avg':np.mean})

希望这有帮助。