按事件聚合熊猫数据框

我有一个数据框:

- event,result 
- 1, 0 
- 1, 1 
- -1, 1
- -1, -1
- -1, -1

现在我想按事件和结果进行汇总,以查看事件等于 3 个结果之一的次数:(-1, 0, 1)。

我已经尝试使用该groupby功能,但不知何故我只得到所需解决方案的一半。

groupby('event').count() 
克雷格

方法 1 - 两列上的 Groupby

一种方法是添加一个额外的列,以便您可以对感兴趣的两列进行分组:

df.assign(cnt=1).groupby(['event','result']).count()

这将创建一个新的虚拟列,以便您可以在eventresult上使用 groupby 此添加的列提供count()要聚合方法值。

输出是:

              cnt
event result     
-1    -1        2
       1        1
 1     0        1
       1        1

方法 2 - crosstab()

另一种方法是使用 pandascrosstab()函数:

pd.crosstab(df.event, df.result).stack()

这将为指定的两列创建一个交叉表。stack()方法会移动数据,以便每行有一个结果。

此命令返回一个系列:

event  result
-1     -1        2
        0        0
        1        1
 1     -1        0
        0        1
        1        1
dtype: int64

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章