2017-02-16 122 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