2017-04-17 12 views
3

1つの列に同じ値がある場合、複数行にわたって合計を実行できるかどうかは不思議でした。たとえば、のは、私がデータフレームのAを持っているとしましょう:pandas 1列の値に基づいて複数の行に値を追加する方法

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

集約sumで使用groupby

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 
関連する問題