如何使用pandas dataframe扩展sum列

时间:2014-06-09 02:06:29

标签: python pandas dataframe

所以,我有这样的表: DF:

  A B C D
0 1 1 0 7
1 1 1 0 9
2 1 1 1 5
3 1 1 1 3

完成df.groupby(['A','B','C']).sum()之后我得到了:

  A B C D
0 1 1 0 16
1 1 1 1 8

我可以用什么方法获得

  A B C D
0 1 1 0 16
1 1 1 0 16
2 1 1 1 8
3 1 1 1 8

在获取sum列时不会聚合原始行?

谢谢!

1 个答案:

答案 0 :(得分:1)

IIUC,你想要transform:它会进行聚合,但会返回一个与原始索引相同的索引对象。

>>> df
   A  B  C  D
0  1  1  0  7
1  1  1  0  9
2  1  1  1  5
3  1  1  1  3
>>> df.groupby(["A", "B", "C"]).transform('sum')
    D
0  16
1  16
2   8
3   8
>>> df["D"] = df.groupby(["A", "B", "C"]).transform('sum')
>>> df 
   A  B  C   D
0  1  1  0  16
1  1  1  0  16
2  1  1  1   8
3  1  1  1   8