2014-06-09 59 views
0

所以擴大和專欄中,我有表是這樣的: 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

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