2016-09-11 7 views
1

ein Ich mag DataFrameWie bekomme ich den Index einer Spalte nach Namen?

>>> df 
    x y z 
0 1 a 7 
1 2 b 5 
2 3 c 7 

Angesichts den Index der Spalte nach dem Namen finden, zum Beispiel x -> 0, z -> 2, & c.

I

>>> list(df.columns).index('y') 
1 

tun können, aber es scheint, nach hinten (die pandas.indexes.base.Index Klasse sollte wahrscheinlich in der Lage sein, es zu tun, ohne zurück zur Liste kreisen).

Antwort

1

können Sie Index.get_loc verwenden:

print (df.columns.get_loc('z')) 
2 

Eine andere Lösung mit Index.searchsorted:

print (df.columns.searchsorted('z')) 
2 

Timings:

In [86]: %timeit (df.columns.get_loc('z')) 
The slowest run took 13.42 times longer than the fastest. This could mean that an intermediate result is being cached. 
100000 loops, best of 3: 1.99 µs per loop 

In [87]: %timeit (df.columns.searchsorted('z')) 
The slowest run took 10.46 times longer than the fastest. This could mean that an intermediate result is being cached. 
100000 loops, best of 3: 4.48 µs per loop 
Verwandte Themen