2013-05-03 37 views
6

Jestem nowy w pandas i testuję Pandas 10-minutowy samouczek z wersją 0.10.1 pand. Jednak gdy wykonuję następujące czynności, pojawia się błąd, jak pokazano poniżej. print df działa dobrze.Błąd Pand: Obiekt "DataFrame" nie ma atrybutu "loc"

Dlaczego nie działa .loc?

Kod

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']] 

Błąd:

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' 

Odpowiedz

9

loc był introduced in 0.11, więc trzeba uaktualnić swoje pandy podążać the 10minute introduction.

+0

w rzeczywistości, w tej chwili , to pierwsza nowa funkcja reklamowana na pierwszej stronie: "Nowe precyzyjne pola indeksowania loc, iloc, at i iat, w celu zredukowania sporadycznej niejednoznaczności w metodzie catch-all do tej pory." – DSM

+0

Mam pandy .11 i to nie działa na moje ... na pewno nie został wprowadzony w .12? –

+0

@RyanSaxe na stronie [co nowego] (http://pandas.pydata.org/pandas-docs/stable/whatsnew.html) stwierdza "począwszy od 0.11 ..." Kod OPs działa dobrze dla mnie w 0.11 (i 0.12dev). –

0

jestem znalezieniem to dziwne, że loc nie pracuje na kopalni, bo mam pandy 0.11, ale tutaj jest coś, co będzie działać na to, co chcesz, wystarczy użyć ix

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

'loc' działa dla mnie z 0.11.0. –

+0

Cóż, być może Macports instaluje inną wersję niż jest napisane –

Powiązane problemy