2016-05-12 9 views
1

Ich habe einen Datenrahmen wie unten:berechnen Prozentwerte je nach Größe Gruppe in Datenrahmen - Pandas

idx col1 col2 col3  
0 1.1 A 100  
1 1.1 A 100  
2 1.1 A 100 
3 2.6 B 100  
4 2.5 B 100   
5 3.4 B 100 
6 2.6 B 100  

Ich mag col3 mit Prozentwerten in Abhängigkeit von der Gruppengröße aktualisieren von col1, col2 (zwei Spalten, dh. für jede Zeile 1,1, A - col3 Wert sollte 33.33)

gewünschten Ausgang hat:

idx col1 col2 col3 
0 1.1 A 33.33 
1 1.1 A 33.33 
2 1.1 A 33.33 
3 2.6 B 50 
4 2.5 B 100 
5 3.4 B 100 
6 2.6 B 50 
+0

können Sie alle gewünschten Ausgang vom Eingang hinzufügen? – jezrael

+0

idx col1 Col2 col3 0 1,1 A 33,33 1 1.1 A 33,33 2 1.1 A 33,33 3 2,6 B 50 4 2.5 B 100 5 3,4 B 100 6 2,6 B 50 –

+0

Es ist eine doppelte Frage. [Hier] (http://stackoverflow.com/questions/23377108/pandas-percentage-of-total-with-groupby) ist die Antwort auf diese Frage. –

Antwort

1

Ich glaube, Sie brauchen groupby mit transformsize:

df['col3'] = 100/df.groupby(['col1', 'col2'])['col3'].transform('size') 
print df 
    col1 col2  col3 
idx      
0  1.1 A 33.333333 
1  1.1 A 33.333333 
2  1.1 A 33.333333 
3  2.6 B 50.000000 
4  2.5 B 100.000000 
5  3.4 B 100.000000 
6  2.6 B 50.000000 
+0

Super, danke fürs bearbeiten. – jezrael

Verwandte Themen