2017-02-16 6 views
0

Ich habe einen Datenrahmen:Reihen in Gruppen in einem Datenrahmen Summieren

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 

Ich mag einen Datenrahmen zurückzugeben, die in jedem Level L. die Summe der Wahrscheinlichkeiten der einzelnen Namen berechnet

für die so über das Ergebnis ein Datenrahmen so sein sollte:

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 

ich weiß, dass ich zu einer Gruppe sie basierend auf Namen und L, muß

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

Aber wie summiere ich dann, was in jeder Gruppierung ist?

Antwort

1

Es scheint, Sie brauchen groupby und GroupBy.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 
Verwandte Themen