对列值进行分组,同时对另一列进行求和

时间:2015-10-26 15:56:19

标签: python pandas group-by

我有一个如下的数据框

   A     B   C   D         
0  cat   5   aa  X
1  wolf  8   bb  Y
2  dog   3   cc  Z
3  cat   6   aa  X
3  dog   6   cc  Z

我想用A分组并总结C.我知道我可以做以下

>>>df.groupby('A').sum().C

A     C
cat   7 
wolf  1
dog   9

但它返回一个系列,我想要A的每个值的所有静态数据得到像

这样的东西
   A     B   C   D         
0  cat  11   aa  X
1  wolf  1   bb  Y
2  dog   9   cc  Z

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用transform覆盖原始df中的列'B',然后调用drop_duplicates

In [95]:
df['B'] = df.groupby('A')['B'].transform('sum')
df = df.drop_duplicates('A')
df

Out[95]:
      A   B   C  D
0   cat  11  aa  X
1  wolf   8  bb  Y
2   dog   9  cc  Z