wake-up-neo.com

Pandas - Plotten eines gestapelten Balkendiagramms

Ich versuche, ein gestapeltes Balkendiagramm zu erstellen, das das Bild repliziert. Alle meine Daten sind von dieser Excel-Tabelle getrennt.

enter image description here

Ich kann nicht herausfinden, wie man ein Datenfeld wie auf dem Bild erstellt, noch kann ich herausfinden, wie man das gestapelte Balkendiagramm erstellt. Alle Beispiele, die ich finde, arbeiten auf unterschiedliche Weise mit dem, was ich zu schaffen versuche.

Mein Datenrahmen ist eine csv aller Werte, die mit einem Pandas-Datenrahmen auf folgende Werte beschränkt ist.

      Site Name    Abuse/NFF
0    NORTH ACTON       ABUSE
1    WASHINGTON         -
2    WASHINGTON        NFF
3    BELFAST            -
4    CROYDON            - 

Ich habe es geschafft, die Daten mit den Summen zu zählen und für jeden Standort individuelle Zählungen zu erhalten.

Würde mich wirklich über eine starke Anleitung freuen.

Code abgeschlossen, vielen Dank für die Unterstützung.

test5 = faultdf.groupby(['Site Name', 'Abuse/NFF'])['Site Name'].count().unstack('Abuse/NFF').fillna(0)

test5.plot(kind='bar', stacked=True)
31
Kuzen

Bekommen Sie Fehler oder wissen Sie nicht, wo Sie anfangen sollen?

%pylab inline
import pandas as pd
import matplotlib.pyplot as plt

df2 = df.groupby(['Name', 'Abuse/NFF'])['Name'].count().unstack('Abuse/NFF').fillna(0)
df2[['abuse','nff']].plot(kind='bar', stacked=True)

 stacked bar plot

65
chucklukowski

Das sollte helfen

df.groupby(['NFF', 'ABUSE']).size().unstack().plot(kind='bar', stacked=True)
8
Domino

Vielleicht können Sie Pandas Kreuztabellenfunktion verwenden

test5 = pd.crosstab(index=faultdf['Site Name'], columns=faultdf[''Abuse/NFF''])

test5.plot(kind='bar', stacked=True)