2017-08-14 3 views
0

Ich erkunde den MultiIndex, aber aus irgendeinem Grund funktioniert die grundlegende Indexierung nicht für mich.Pandas MultiIndex Indizierung funktioniert nicht

Der Index:

In [119]: index 
Out[119]: MultiIndex(levels=[[u'Group 1', u'Group 2'], [u'A01', u'A02', u'A03', u'A04']], 
     labels=[[0, 1, 0, 0], [0, 1, 2, 3]], 
     names=[u'Group', u'Well']) 

Der Datenrahmen:

df = pd.DataFrame(np.random.randn(4,2), index=index) 

Der Datenrahmen hat den Index:

In [124]: df.index 
Out[124]: 
MultiIndex(levels=[[u'Group 1', u'Group 2'], [u'A01', u'A02', u'A03', u'A04']], 
    labels=[[0, 1, 0, 0], [0, 1, 2, 3]], 
    names=[u'Group', u'User']) 

jedoch Indexierungs:

df['Group 1'] 

nur zu einem Fehler

KeyError: 'Group 1' 

Wie kann dieses Problem behoben werden?

Antwort

1

Um mit Index zu schneiden, benötigen Sie loc für Datenrahmen, da die basic indexing with [] Spalten auswählen soll; Da der Datenrahmen keine Spalte Group 1 genannt enthält, wirft sie einen Schlüssel Fehler:

df.loc['Group 1'] 

#    0   1 
#Well  
#A01 -0.337359 -0.113165 
#A03  0.212714 1.619850 
#A04  1.411829 -0.892723 

Grundschalttisch:

# Object Type   Selection  Return Value Type 
#  Series  series[label]  scalar value 
# DataFrame frame[colname]  Series corresponding to colname 
#  Panel panel[itemname]  DataFrame corresponding to the itemname 

loc Schalttisch:

#Object Type Indexers 
#  Series s.loc[indexer] 
# DataFrame df.loc[row_indexer,column_indexer] 
#  Panel p.loc[item_indexer,major_indexer,minor_indexer]