pandas
hat die Unterstützung für Multi-Level-Spaltennamen:Pandas: Mehrstufige Spaltennamen
>>> x = pd.DataFrame({'instance':['first','first','first'],'foo':['a','b','c'],'bar':rand(3)})
>>> x = x.set_index(['instance','foo']).transpose()
>>> x.columns
MultiIndex
[(u'first', u'a'), (u'first', u'b'), (u'first', u'c')]
>>> x
instance first
foo a b c
bar 0.102885 0.937838 0.907467
Diese Funktion ist sehr nützlich, da es mehrere Versionen des gleichen Datenrahmen erlaubt ‚horizontal‘ mit der ersten Ebene angehängt werden von die Spaltennamen (in meinem Beispiel instance
) unterscheiden die Instanzen.
Stellen Sie sich ein Datenrahmen wie diese habe ich schon:
a b c
bar 0.102885 0.937838 0.907467
Gibt es eine schöne Möglichkeit, eine andere Ebene zu den Spaltennamen, ähnlich wie dies für Zeilenindex hinzufügen:
x['instance'] = 'first'
x.set_level('instance',append=True)
Ich denke nicht * es gibt, aber es sollte definitiv sein. Ich denke, es gibt eine Feature-Anfrage für diese auf GitHub ... –
Obwohl es einige interessante Fragen aufwirft, wie "Wie wähle ich eine bestimmte Spalte, wenn es zwei Ebenen der Spaltenbenennung gibt?". – LondonRob
x ['zuerst'], x [(erste ',' a ') oder x.xs (' a ', Achse = 1, Ebene = 1)? : s –