2017-02-16 80 views
0

我有一個數據幀:在數據幀中總結組的行

ID  Name  L Prob 
    044FB2AE X  L0 1.0 
    044FB2AE X  L1 0.4 
    044FB2AE X  L1 0.3 
    044FB2AE X  L2 0.6 
    044FB2AE X  L2 0.3 
    044F3333 Y  L0 0.1 
    044F3333 Y  L0 0.4 
    044F3333 Y  L1 0.3 
    044F3333 Y  L2 0.6 
    044F3333 Y  L2 0.4 

我想返回所以計算每名在每個級別的概率之和L.

的一個數據幀上面的結果應該是這樣的一個數據幀:

ID  Name  L Prob 
    044FB2AE X  L0 1.0 
    044FB2AE X  L1 0.7 
    044FB2AE X  L2 0.9 
    044F3333 Y  L0 0.5 
    044F3333 Y  L1 0.3 
    044F3333 Y  L2 1.0 

我知道我需要他們根據名稱和L組,

df.groupby(['Name','L']) 

但是,我怎麼總結每個分組內?

回答

1

看來你需要groupbyGroupBy.sum

df = df.groupby(['ID','Name','L'], as_index=False, sort=False).Prob.sum() 
print (df) 
     ID Name L Prob 
0 044FB2AE X L0 1.0 
1 044FB2AE X L1 0.7 
2 044FB2AE X L2 0.9 
3 044F3333 Y L0 0.5 
4 044F3333 Y L1 0.3 
5 044F3333 Y L2 1.0 

df = df.groupby(['Name','L'], as_index=False, sort=False).Prob.sum() 
print (df) 
    Name L Prob 
0 X L0 1.0 
1 X L1 0.7 
2 X L2 0.9 
3 Y L0 0.5 
4 Y L1 0.3 
5 Y L2 1.0