In [1]:
import numpy as np
import pandas as pd

In [3]:
hair_eye_color = pd.read_csv("In-ClassFirst/HairEyeColor.csv", index_col=0)

In [4]:
pivoted = pd.pivot_table(hair_eye_color, values='Freq', rows=['Eye', 'Sex'], cols=['Hair'])

In [5]:
hairSexSum = 1.0*pivoted.sum(axis=1)

In [6]:
normalized_pivoted = 100.0*pivoted.div(1.0*hairSexSum, axis='index')

In [7]:
normalized_pivoted


Out[7]:
Hair Black Blond Brown Red
Eye Sex
Blue Female 7.894737 56.140351 29.824561 6.140351
Male 10.891089 29.702970 49.504950 9.900990
Brown Female 29.508197 3.278689 54.098361 13.114754
Male 32.653061 3.061224 54.081633 10.204082
Green Female 6.451613 25.806452 45.161290 22.580645
Male 9.090909 24.242424 45.454545 21.212121
Hazel Female 10.869565 10.869565 63.043478 15.217391
Male 21.276596 10.638298 53.191489 14.893617

In [8]:
axes = normalized_pivoted.plot(kind='bar', stacked=True)