2017-04-17 42 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 
相关问题