DataFrame con MultiIndex para dictar

Tengo un marco de datos con un MultiIndex. Me pregunto si creé el marco de datos de la manera correcta (ver más abajo).

             01.01  02.01  03.01  04.01
bar total1     40     52     18     11
    total2     36     85      5     92
baz total1     23     39     45     70
    total2     50     49     51     65
foo total1     23     97     17     97
    total2     64     56     94     45
qux total1     13     73     38      4
    total2     80      8     61     50

df.index.values resultados en:

array([('bar', 'total1'), ('bar', 'total2'), ('baz', 'total1'),
       ('baz', 'total2'), ('foo', 'total1'), ('foo', 'total2'),
       ('qux', 'total1'), ('qux', 'total2')], dtype=object)

df.index.get_level_values resultados en:

<bound method MultiIndex.get_level_values of MultiIndex(levels=[[u'bar', u'baz', u'foo', u'qux'], [u'total1', u'total2']],
           labels=[[0, 0, 1, 1, 2, 2, 3, 3], [0, 1, 0, 1, 0, 1, 0, 1]],names=[]

En última instancia, estoy buscando transformar el df en un diccionario de diccionarios de modo que la primera clave dict sea una de ['bar', 'baz', 'foo', 'qux'] y los valores sean las fechas y el diccionario interno esté hecho de 'total1' y 'totals2' como clave y los valores son los enteros de df. La explicación alternativa es, por ejemplo, si dict1 es el dict y luego llama:

dict1['bar']

daría como resultado la salida:

{u'bar':{'01.01':{'total1':40,'total2':36},'02.01':{'total1':52,'total2':85},'03.01':{'total1':18,'total2':5},'04.01':{'total1':11,'total2':92} } }

¿Cómo y qué necesitaría modificar para lograr esto? ¿Es este un problema de indexación?