2013-05-03 38 views
6

Tôi mới dùng pandas và đang dùng thử hướng dẫn Pandas 10 phút với gấu trúc phiên bản 0.10.1. Tuy nhiên khi tôi làm như sau, tôi nhận được lỗi như hình dưới đây. print df hoạt động tốt.Lỗi gấu trúc: đối tượng 'DataFrame' không có thuộc tính 'loc'

Tại sao .loc không hoạt động?

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

Lỗi:

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' 

Trả lời

9

locintroduced in 0.11, vì vậy bạn sẽ cần phải nâng cấp gấu trúc của bạn để làm theo the 10minute introduction.

+0

Trong thực tế, tại thời điểm này , đây là tính năng mới đầu tiên được quảng cáo trên trang đầu: "Các trường lập chỉ mục chính xác mới loc, iloc, at và iat, để giảm sự mơ hồ không thường xuyên trong phương pháp ix hiện tại." – DSM

+0

Tôi có gấu trúc .11 và nó không hoạt động trên mỏ của tôi ... bạn chắc chắn nó không được giới thiệu trong .12? –

+0

@RyanSaxe trong trang [mới là gì] (http://pandas.pydata.org/pandas-docs/stable/whatsnew.html) nó tuyên bố "bắt đầu từ 0,11 ..." Mã OPs hoạt động tốt cho tôi trong 0,11 (và 0,12dev). –

0

Tôi đang tìm nó lẻ rằng loc không hoạt động trên tôi vì tôi có gấu trúc 0.11, nhưng ở đây là cái gì đó sẽ làm việc cho những gì bạn muốn, chỉ cần sử dụng ix

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

'loc' hoạt động với tôi với 0.11.0. –

+0

thì có thể macports sẽ cài đặt một phiên bản khác với phiên bản –

Các vấn đề liên quan