Kruistabellen, ook wel draaitabellen genoemd, gebruik je voor het zoeken naar verbanden tussen variabelen en het weergeven van het verloop van numerieke waarden binnen een bepaalde periode. Welke verbanden zie jij?
draaitabel = pd.pivot_table(df, index= 'Sex', columns='Pclass', values='Survived',
margins=True) # totaal kolom
# kolom en rij labels
draaitabel.columns = ['Klasse 1','Klasse 2','Klasse 3','Totaal']
draaitabel.index= ['Vrouw','Man','Totaal']
print(draaitabel)
Er is veel mogelijk met de DataFrame.pivot_table() functie. Hieronder een tweede voorbeeld.
kruistabel = pd.pivot_table(df, index='Pclass', values="Age",
# Lijst met functies.
aggfunc=['min','max','mean'],
margins=False) # geen totalen
kruistabel.index = ['Klasse 1','Klasse 2','Klasse 3']
# Verwijder extra rij onder de kolomnamen
kruistabel.columns = kruistabel.columns.droplevel(1)
kruistabel.columns = ['min','max','gemiddelde']
print(kruistabel)
Een eenvoudige draaitabel samenstellen kan ook via groeperen en aggregeren.
draaitabel = df.groupby(['Sex', 'Pclass'])['Survived'].agg('mean').unstack()
draaitabel.columns = ['Klasse 1','Klasse 2','Klasse 3']
draaitabel.index= ['Vrouw','Man']
print(draaitabel)