2017-05-05 3 views
1

Ich habe ein Datenframe mit zwei Spalten 'Position' und 'Rankvalue'.Wie man einen gestapelten Balken basierend auf der Häufigkeit der Werte in einem Pandas plotten?

rankvalue position 
    0 D 3 
    1 D 20 
    2 S 1 
    3 D 80 
    4 D 100 
    5 S 1 
    6 D 3 
    7 D 100 
    8 D 20 
    9 D 80 
    10 D 20 
    11 D 80 
    12 S 1 
    13 D 3 
    14 D 100 
    15 S 1 
    16 VS 3 
    17 LS 100 
    18 D 20 
    19 LS 80 

I gruppiert, um es von 'Position' und dann für jede Position die Frequenz der 'rankvalue' berechnet:

aggre= results.groupby(['position','rankvalue'])['position'].agg({'Frequency':'count'}) 

Dieser den Prozentsatz erzeugt:

final = aggre.groupby(level=0).apply(lambda x:100 * x/float(x.sum())) 

enter image description here

Wie kann ich einen gestapelten Balken basierend auf dem Datenrahmen 'final' erzeugen?

Die X-Achse sollte die Position (1,3,20,80,100) und die Y-Achse die Frequenzprozentzahl sein. Jede Hilfe wird geschätzt.

+0

Beitrag Textdaten keine Bilder – Serenity

Antwort

1

Versuchen:

final.Frequency.unstack().plot.bar(stacked=True) 

Oder

final.Frequency.unstack(0).plot.bar(stacked=True) 
+0

"final.Frequency.unstack() plot.bar (gestapelt = True)" ist die richtige Antwort .. – kitchenprinzessin

+0

@Kitchenprinzessin fühlen Sie sich frei, die Antwort auch zu verbessern, wenn Sie es nützlich fanden. – piRSquared

Verwandte Themen