2016-12-09 4 views
2

Gibt es eine Möglichkeit Pandas Datenrahmen zu Serie mit Multiindex zu konvertieren? Die Spalten des Datenrahmens können auch multi-indexiert sein.Convert Pandas Datenrahmen zu Serie

Below funktioniert, aber nur für Multiindex mit Etiketten.

In [163]: d 
Out[163]: 

a 0  1 
b 0 1 0 1 
a 0 0 0 0 
b 1 2 3 4 
c 2 4 6 8 

In [164]: d.stack(d.columns.names) 
Out[164]: 

    a b 
a 0 0 0 
     1 0 
    1 0 0 
     1 0 
b 0 0 1 
     1 2 
    1 0 3 
     1 4 
c 0 0 2 
     1 4 
    1 0 6 
     1 8 
dtype: int64 

Antwort

3

Ich glaube, Sie nlevels verwenden können für length von levels in MultiIndex zu finden, dann erstellen range mit stack:

print (d.columns.nlevels) 
2 

#for python 3 add `list` 
print (list(range(d.columns.nlevels))) 
[0, 1] 

print (d.stack(list(range(d.columns.nlevels)))) 
    a b 
a 0 0 0 
     1 0 
    1 0 0 
     1 0 
b 0 0 1 
     1 2 
    1 0 3 
     1 4 
c 0 0 2 
     1 4 
    1 0 6 
     1 8 
dtype: int64 
+0

ich zum ersten Mal denke ich falsch bin. – jezrael

Verwandte Themen