2016-10-30 3 views
1
a 0 0 0 0 1 
a 0 0 0 1 1 
a 1 0 0 1 1 
b 1 0 0 1 1 
c 0 0 1 1 1 
c 1 0 0 0 0 
c 0 1 0 0 0 

Wenn ich eine Pandas Datenrahmen wie die oben haben, wie könnte ich mit a, b und c die Daten Gruppierung gehen über und dann die Summe/Zählung jeder Spalte Plotten?Pandas GROUPBY BarPlot für eine logische Matrix

Idealerweise hätte ich 3 Gruppen in meinem Balkendiagramm, jede mit 5 Balken, die die Summe/Anzahl für diese Spalte in dieser Gruppe darstellen.

Antwort

1

Sie möchten die groupby-Methode für ein Datenframe verwenden, um ein Dataframe groupby object zu erstellen. Der Aufruf von sum für das Objekt groupby erstellt einen neuen Datenrahmen, der ein Drehpunkt des ursprünglichen Datenrahmens ist. Von dort können Sie plot anrufen, um das Balkendiagramm zu machen.

import pandas as pd 

d = {'type': ['a','a','a','b','c','c','c'], 
    'v1': [0,0,1,1,0,1,0], 
    'v2': [0,0,0,0,0,0,1], 
    'v3': [0,0,0,0,1,0,0], 
    'v4': [0,1,1,1,1,0,0], 
    'v5': [1,1,1,1,1,0,0]} 

df = pd.DataFrame(d) 
gb_sum = df.groupby('type').sum() 
gb_sum.plot(kind='bar') 

enter image description here