Python Pandas groupby:组A与非组A?

汉弗雷斯科

假设数据看起来像:

df = pd.DataFrame({'Group' : ['A', 'B', 'A', 'B', 'C'],
                   'Value' : [1, 4, 3, 2, 3]})

  Group Value
0     A     1
1     B     4
2     A     3
3     B     2
4     C     3

通常,按“组”分组并求和时,我会得到:

df.groupby(by="Group").agg(["sum"])

Group  Value sum
    A          4
    B          6
    C          3

有没有一种方法可以获取“ A组”与“非A组”,所以类似:

df.groupby(by="Group A vs non-Group A").agg(["sum"])

Group  Value sum
    A          4
non-A          9

感谢大家!

使用groupbyreplace

In [566]: df.groupby(
              df.Group.eq('A').replace({True: 'A', False: 'non-A'})
            )['Value'].sum().reset_index()
Out[566]:
   Group  Value
0      A      4
1  non-A      9

细节

In [567]: df.Group.eq('A').replace({True: 'A', False: 'non-A'})
Out[567]:
0        A
1    non-A
2        A
3    non-A
4    non-A
Name: Group, dtype: object

In [568]: df.groupby(df.Group.eq('A').replace({True: 'A', False: 'non-A'}))['Value'].sum()
Out[568]:
Group
A        4
non-A    9
Name: Value, dtype: int64

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章