2016-10-20 69 views
0

我是一個新的python和熊貓。我在熊貓創建面板時遇到問題。從DataFrame創建面板

def sq_error(w0,w1,x,y): 
    return (y - (w0 - w1 * x)) ** 2; 


d = dict() 
w0 = 50 
for w1 in range(0, 10): 
    data['height_error'] = data.apply(lambda row: sq_error(w0,w1,row['Weight'], 
               row['Height']), axis=1) 
    df = data[['height_error','Weight']] 
    d['df'] = df 
    d['w1'] = w1 


p = pd.Panel(d) 

我收到錯誤「詮釋」對象有沒有屬性「形狀」

我試着用列表

d = dict() 
w0 = 50 
for w1 in range(0, 10): 
    data['height_error'] = data.apply(lambda row: sq_error(w0,w1,row['Weight'], 
               row['Height']), axis=1) 
    l = df[['height_error','Weight']].values.tolist() 
    d['df'] = l 
    d['w1'] = w1 

p = pd.Panel(d) 

但仍然得到同樣的錯誤

+0

其中是sq_error()?是第一行應該是'data = dict()'? – Yugi

+0

不,不是。 d應該存儲三維字典 – aLLex

+0

數據是DataFrame [['Weight','Height']] – aLLex

回答

0

大熊貓正試圖作爲數據框訪問w1,但它是一個int。所以當然它不具有一個形狀屬性

你應該寫d [W1] = DF

d = dict() 
w0 = 50 
for w1 in range(0, 10): 
    data['height_error'] = data.apply(lambda row: sq_error(w0,w1,row['Weight'],row['Height']), axis=1) 
    l = df[['height_error','Weight']].values.tolist() 
    d[w1] = df 

p = pd.Panel(d) 

因此熊貓將接受它作爲與整數密鑰和數據幀值的字典。

+0

其實我的意思是 – aLLex

+0

data ['w1'] = w1 df = data [['height_error','Weight'] ] df2 = data [['w1']] d ['df'] = df d ['w1'] = df2 – aLLex