2017-09-01 8 views
0

私はデータフレームパンダは:

weight  height 
    56   167 
    88   179 
    42   159 
    51   162 
    90   170 

ていると私はいくつかの機能

def min_error(w0, w1, height, weight): 
    return np.sum(np.power((height - (w0 + w1*weight))), 2) 

(data.apply(lambda row: min_error(60, 0.05, row['Height'], row['Weight']), axis=1)) 

を適用しよう。しかし、それは私がこれを修正するにはどうすればよい

ValueError: ('invalid number of arguments', u'occurred at index 1')

返すデータフレームの列に関数を適用しますか?

答えて

1

問題はnp.powerへの呼び出しです。間違った場所にカッコがあります。

def min_error(w0, w1, height, weight): 
    return np.sum(np.power((height - (w0 + w1*weight)), 2)) 

問題はパンダではありませんが、パンダの指標で同定されたので、それはそれはないdata.applyとエラー、ように見えた:試してみてください。

0

数式が正しくありません。ここで起こっているのは、np.powerが2つの引数を期待していますが、1つしか受け取っていないということです。

私は、これはあなたが望む式だと思う:

def min_error(w0, w1, height, weight): 
    return np.sum(np.power((height - (w0 + w1*weight)),2)) 

(data.apply(lambda row: min_error(60, 0.05, row['height'], row['weight']), axis=1)) 

は出力:

0 10857.6400 
1 13133.1600 
2  9389.6100 
3  9890.3025 
4 11130.2500 
dtype: float64 
0

多分これはあまりにもお手伝いをします。

df['min_error']=min_error(60, 0.05, df['height'], df['weight'])