2013-05-03 10 views
6

Sono nuovo a pandas e sto provando il tutorial Pandas di 10 minuti con pandas versione 0.10.1. Tuttavia quando faccio quanto segue, ottengo l'errore come mostrato sotto. print df funziona correttamente.Errore Pandas: l'oggetto 'DataFrame' non ha attributo 'loc'

Perché .loc non funziona?

Codice

import numpy as np 
import pandas as pd 

df = pd.DataFrame(np.random.randn(6,4), index=pd.date_range('20130101', periods=6), columns=['A','B','C','D']) 
df.loc[:,['A', 'B']] 

Errore:

AttributeError       Traceback (most recent call last) 
<ipython-input-4-8513cb2c6dc7> in <module>() 
----> 1 df.loc[:,['A', 'B']] 

C:\Python27\lib\site-packages\pandas\core\frame.pyc in __getattr__(self, name) 
    2044    return self[name] 
    2045   raise AttributeError("'%s' object has no attribute '%s'" % 
-> 2046        (type(self).__name__, name)) 
    2047 
    2048  def __setattr__(self, name, value): 

AttributeError: 'DataFrame' object has no attribute 'loc' 

risposta

9

loc era introduced in 0.11, quindi avrete bisogno di aggiornare le vostre panda a seguire the 10minute introduction.

+0

In realtà, in questo momento , è la prima nuova funzione pubblicizzata in prima pagina: "Nuovi campi di indicizzazione di precisione loc, iloc, at e iat, per ridurre l'ambiguità occasionale nel metodo catch-all fino ad oggi ix." – DSM

+0

Ho panda .11 e non funziona sul mio ... sei sicuro che non sia stato introdotto in .12? –

+0

@RyanSaxe nella pagina [cosa c'è di nuovo] (http://pandas.pydata.org/pandas-docs/stable/whatsnew.html) afferma "a partire da 0.11 ..." Il codice OPs funziona bene per me in 0.11 (e 0.12dev). –

0

mi sto trovando strano che loc non funziona sulla mia perché ho panda 0.11, ma qui è qualcosa che funziona per quello che si vuole, basta usare ix

df.ix[:,['A','B']] 
+0

'loc' lavora per me con 0.11.0. –

+0

bene allora forse macports installa una versione diversa da quella che dice –