2016-04-09 9 views
2

Ich habe eine folgende multiindex Zeitreihendaten.Multi-Spalten-Auswahl mit Pandas xs Funktion ist fehlgeschlagen

first    001            \ 
second    open  high  low close jdiff_vol value 
date  time               
20150721 90100 2082.18 2082.18 2082.18 2082.18  11970 99466 
     90200 2082.72 2083.01 2082.18 2083.01  4886 40108 
     90300 2083.68 2084.20 2083.68 2083.98  6966 48847 
     90400 2083.63 2084.21 2083.63 2084.00  6817 48020 
     90500 2084.03 2084.71 2083.91 2084.32  10193 58399 
20150721 90100 2084.14 2084.22 2083.59 2083.65  7860 39128 
     90200 2084.08 2084.08 2083.47 2083.50  7171 39147 
     90300 2083.25 2083.65 2083.08 2083.60  4549 34373 
     90400 2084.06 2084.06 2083.66 2083.80  6980 38088 
     90500 2083.61 2084.04 2083.27 2083.89  5292 33466 

Der folgende Code funktioniert.

opens = data.xs('open', level='second', axis=1, drop_level=True) 

Aber die Auswahl mehrerer Spalten mit dem folgenden Code schlägt fehl.

opens = data.xs(('open','close'), level='second', axis=1, drop_level=True) 

Wie kann ich es ändern, um mehrere Spalten auszuwählen?

+0

Sie scheinen ein Komma 'öffnet = data.xs zu fehlen (('open', 'close'), Ebene = 'second', axis = 1, drop_level = True) 'ist das ein Tippfehler? – EdChum

+0

@EdChum danke für deinen Kommentar. Ich habe den Tippfehler korrigiert. – user1913171

Antwort

0

Ich kann nicht find Lösung mit xs.

Aber Sie können loc, verwenden aber zunächst notwendig Sortierspalten ist durch sort_index:

data = data.sort_index(axis=1) 

print data.loc[:,(slice(None),('open','close'))] 
first    001   
second   close  open 
date  time     
20150721 90100 2082.18 2082.18 
     90200 2083.01 2082.72 
     90300 2083.98 2083.68 
     90400 2084.00 2083.63 
     90500 2084.32 2084.03 
     90100 2083.65 2084.14 
     90200 2083.50 2084.08 
     90300 2083.60 2083.25 
     90400 2083.80 2084.06 
     90500 2083.89 2083.61