如何修复Python中回归误差计算的for循环问题?
问题解决办法
你的问题出在列表推导式没对应匹配y和re的行元素——re是个Series,你直接写round(re,4)会把整个Series拿来和每个i运算,自然输出不对。
给你两种简单修正方式:
方法一:用Pandas向量运算(推荐)
既然y和re都是Pandas Series,直接用逐元素运算就行,不用写循环:sse['Error (y - ŷᵢ)'] = y - re.round(4)Pandas会自动按索引对应每行元素计算,比循环高效得多。
方法二:用索引匹配循环
如果一定要用列表推导式,得用enumerate拿到y的索引,对应取re的元素:sse['Error (y - ŷᵢ)'] = [y_val - round(re.iloc[idx], 4) for idx, y_val in enumerate(y)]这样就能保证每个
y的值都和对应行的预测值re计算误差。
额外提醒:处理Pandas数据尽量用内置向量操作,既简洁不易出错,速度也比循环快很多。
内容的提问来源于stack exchange,提问作者turtleee
相关产品推荐
相关产品推荐

