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?