我有数据框
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 :('参数数量无效',u'发生在索引1')
我该如何解决?
答案 0 :(得分:1)
问题是您致电np.power
。你的括号在错误的地方。尝试:
def min_error(w0, w1, height, weight):
return np.sum(np.power((height - (w0 + w1*weight)), 2))
问题不在于Pandas,但它是在Pandas索引中识别出来的,所以它似乎是data.apply
的错误,但事实并非如此。
答案 1 :(得分:0)
您的数学公式不正确。这里发生的是np.power期望两个参数,但只接收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
答案 2 :(得分:0)
也许这对你也有帮助。
df['min_error']=min_error(60, 0.05, df['height'], df['weight'])