2016-11-10 4 views

Antwort

4

Sie können Informationen in docs am Ende finden:

für einen Wert explizit bekommen (equiv zu veraltet df.get_value ('a', 'A'))

# this is also equivalent to ``df1.at['a','A']`` 
In [55]: df1.loc['a', 'A'] 
Out[55]: 0.13200317033032932 

aber wenn es benutzt wird, gibt es keine Warnung.

Aber wenn Check Index.get_value:

schnelles Nachschlagen von Wert von 1-dimensionalen ndarray. Nur diese verwenden, wenn Sie wissen, was Sie tun

Also ich denke, besser nutzen iat, at, loc, ix.

Timings:

df = pd.DataFrame({'A':[1,2,3], 
        'B':[4,5,6], 
        'C':[7,8,9], 
        'D':[1,3,5], 
        'E':[5,3,6], 
        'F':[7,4,3]}) 

print (df) 

In [93]: %timeit (df.loc[0, 'A']) 
The slowest run took 6.40 times longer than the fastest. This could mean that an intermediate result is being cached. 
10000 loops, best of 3: 177 µs per loop 

In [96]: %timeit (df.at[0, 'A']) 
The slowest run took 17.01 times longer than the fastest. This could mean that an intermediate result is being cached. 
100000 loops, best of 3: 7.61 µs per loop 

In [94]: %timeit (df.get_value(0, 'A')) 
The slowest run took 23.49 times longer than the fastest. This could mean that an intermediate result is being cached. 
100000 loops, best of 3: 3.36 µs per loop 
+0

ich in docs über 'veraltet get_value diesen Satz nicht verstehen()' ... Pandas selbst verwendet ' get_value() 'intern - https://github.com/pandas-dev/pandas/blob/master/pandas/core/indexing.py#L77 – MaxU

+0

Ja, gute Frage - vielleicht Tippfehler in der Dokumentation? Ich habe keine Ahnung. – jezrael

+0

Um den Unterschied zwischen iat/iloc, at/loc und ix zu sehen, siehe [diese Frage] (http://stackoverflow.com/questions/31593201/pandas-iloc-vs-ix-vs-loc-explanation) –

Verwandte Themen