DataFrame com MultiIndex para ditar
Eu tenho um quadro de dados com um MultiIndex. Gostaria de saber se eu criei o quadro de dados da maneira correta (veja abaixo).
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
resulta em:
array([('bar', 'total1'), ('bar', 'total2'), ('baz', 'total1'),
('baz', 'total2'), ('foo', 'total1'), ('foo', 'total2'),
('qux', 'total1'), ('qux', 'total2')], dtype=object)
df.index.get_level_values
resulta em:
<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=[]
Em última análise, estou procurando transformar o df em um ditado de dicionários, de modo que a primeira chave do ditado seja uma de ['bar', 'baz', 'foo', 'qux'] e os valores sejam as datas e o dicionário interno seja criado de 'total1' e 'totals2' como chave e os valores são os números inteiros de df. Explicação alternativa, por exemplo, se dict1 é o dict, então chamando:
dict1['bar']
resultaria na saída:
{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} } }
Como e o que eu precisaria alterar para conseguir isso? Este é um problema de indexação?