2017-08-15 32 views
5

我只是想在熊貓中使用熔化函數,我只是繼續得到相同的錯誤。'DataFrame'對象沒有'熔化'屬性

只需鍵入由文檔提供的示例:

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

我剛剛得到的錯誤:

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

回答

7

您大熊貓版本是波紋管0.20.0,所以需要pandas.melt代替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