Ich bin am Ende meines Wissens mit diesem ... Ich habe einen Datenrahmen von drei Spalten (aff_id, mkt und bkgs) Ich gruppiert von zwei von ihnen (aff_id und mkt):Iterieren über Multiindex-Datenrahmen (Python) und Zuweisen von Dicts zu Index-Wert-Paaren
df_gb_aff = df.groupby(["affiliate_id", 'mkt']).sum()
df_gb_aff.sort('bkgs', ascending=False, inplace=True)
geben Sie mir ein Multiindex Datenrahmen, die ein bisschen wie folgt aussieht:
bkgs
aff_id mkt
2508b863a1a4 bcab9d6ec630 1910.707124
6cc5f0e8c96b b7d0dbd38376 1374.924684
188e238326e4 446bb566f202 1206.589522
dbe759c691eb 1203.979908
6cc5f0e8c96b 0e9013464c4c 1203.532310
Was will ich jetzt zu tun ist, über jeden aff_id laufen, und machen einen dict von mkt (key) - bkgs (value) -Paare, aber da jeder aff_id-Wert verschiedene mkt-Werte hat, gibt Python einen Fehler aus, wenn ein df_gb_aff.loc [ index_1, index_2] existiert nicht.
Ich habe immer die Indizes mit diesen:
aff_list = df_gb_aff.index.levels[0].values
mkt_list = df_gb_aff.index.levels[1].values
und versucht, mit iterieren:
for i in aff_list:
for j in mkt_list :
print df_gb_aff.loc[i,j]
Wer eine vernünftige Art und Weise, dies zu tun?
d = {idx: df_gb_aff.ix [idx] [0] für idx in df_gb_aff.index} ist genau das, was ich gesucht habe. nett! –
Wenn meine Antwort hilfreich war, nicht vergessen [accept] (http://meta.stackexchange.com/a/5235/295067) es. Vielen Dank. – jezrael