2017-04-17 75 views
3

我只是想知道如果我可以對多行​​執行求和,如果它們對於一列有相同的值。舉例來說,假設我有一個數據幀答:pandas如何根據一列中的值在多行中添加值

A: 
col1, col2, col3, col4 
A  0.1 0.2 0.3 
B  0.4 0.5 0.6 
A  0.7 0.8 0.9 
C  1.0 1.1 1.2 

最終的結果應該是:

col1, col2, col3, col4 
A  0.8 1.0 1.2 
B  0.4 0.5 0.6 
C  1.0 1.1 1.2 

這是因爲數據幀的第一和第三行具有相同的值(A)爲col1 ...我應該如何實施這個?

回答

2

使用groupby採用聚集sum

df1 = df.groupby('col1', as_index=False).sum() 
print (df1) 
    col1 col2 col3 col4 
0 A 0.8 1.0 1.2 
1 B 0.4 0.5 0.6 
2 C 1.0 1.1 1.2 

df1 = df.groupby('col1').sum().reset_index() 
print (df1) 
    col1 col2 col3 col4 
0 A 0.8 1.0 1.2 
1 B 0.4 0.5 0.6 
2 C 1.0 1.1 1.2 
3
In [83]: A.set_index('col1').sum(level=0) 
Out[83]: 
     col2 col3 col4 
col1 
A  0.8 1.0 1.2 
B  0.4 0.5 0.6 
C  1.0 1.1 1.2 

In [152]: A.set_index('col1').sum(level=0).reset_index() 
Out[152]: 
    col1 col2 col3 col4 
0 A 0.8 1.0 1.2 
1 B 0.4 0.5 0.6 
2 C 1.0 1.1 1.2 
相關問題