2017-01-12 4 views

Antwort

1

Die beste Art und Weise, Ich habe es bis jetzt gefunden o einen neuen Datenrahmen mit den Gruppen erstellen:

pd.DataFrame({'Non-Survivors': titanic.groupby('Survived').get_group(0).Age, 
       'Survivors': titanic.groupby('Survived').get_group(1).Age}) 
      .plot.hist(stacked=True) 

enter image description here

+0

Dieses schön für mich funktioniert es Ihnen danken. – Atlas7

3

Diese Lösung verwendet eine Balkendiagramm statt eines Histogramms, aber ich denke, es gibt Ihnen, was Sie suchen.

titanic.groupby(['Survived', pd.cut(titanic['Age'], np.arange(0,100,10))])\ 
     .size()\ 
     .unstack(0)\ 
     .plot.bar(stacked=True) 

enter image description here

2

definiert ich eine benutzerdefinierte Funktion, die np.histogram
Auch nutzt beachten Sie, dass die Histogramm Gruppen innerhalb von Gruppen von 'Survived'

berechnet
def hist(x): 
    h, e = np.histogram(x.dropna(), range=(0, 80)) 
    e = e.astype(int) 
    return pd.Series(h, zip(e[:-1], e[1:])) 

kw = dict(stacked=True, width=1, rot=45) 
titanic.groupby('Survived').Age.apply(hist).unstack(0).plot.bar(**kw) 

enter image description here

Verwandte Themen