2017-08-15 20 views
5

Tôi chỉ muốn sử dụng hàm melt trong gấu trúc và tôi cứ tiếp tục gặp lỗi tương tự.Đối tượng 'DataFrame' không có thuộc tính 'melt'

Chỉ cần gõ ví dụ được cung cấp bởi các tài liệu:

cheese = pd.DataFrame({'first' : ['John', 'Mary'], 
         'last' : ['Doe', 'Bo'], 
         'height' : [5.5, 6.0], 
         'weight' : [130, 150]}) 

tôi chỉ nhận được lỗi:

--------------------------------------------------------------------------- 
AttributeError       Traceback (most recent call last) 
<ipython-input-119-dc0a0b96cf46> in <module>() 
----> 1 cheese.melt(id_vars=['first', 'last']) 
C:\Anaconda2\lib\site-packages\pandas\core\generic.pyc in __getattr__(self, name) 

2670    if name in self._info_axis: 
2671     return self[name] 
-> 2672    return object.__getattribute__(self, name) 
2673 
2674  def __setattr__(self, name, value): 

AttributeError: 'DataFrame' object has no attribute 'melt'` 

Trả lời

7

Bạn gấu trúc phiên bản là dưới 0.20.0, vì vậy cần pandas.melt thay DataFrame.melt:

df = pd.melt(cheese, id_vars=['first', 'last']) 
print (df) 
    first last variable value 
0 John Doe height 5.5 
1 Mary Bo height 6.0 
2 John Doe weight 130.0 
3 Mary Bo weight 150.0 
2
def grilled(d): 
    return d.set_index(['first', 'last']) \ 
      .rename_axis('variable', 1) \ 
      .stack().reset_index(name='value') 

grilled(cheese) 

    first last variable value 
0 John Doe height 5.5 
1 John Doe weight 130.0 
2 Mary Bo height 6.0 
3 Mary Bo weight 150.0 
Các vấn đề liên quan