Python 为每一行计算 MSE

Python to compute MSE for every row

我正在尝试为我的数据框中的每一行计算 MSE,

下面是我的代码-

import pandas as pd
s={'AValues':[1,1,2,2],'month':[2016,2017,2018,2019],'fvalues':[55,66,77,88],'Fruits':['Apple','Mango','Orange','Banana']}
p=pd.DataFrame(data=s)
mse_df=pd.pivot_table(p,index='Fruits',columns='month',values=['AValues','fvalues'])
mse_df=mse_df.fillna(0)

这是上面代码的数据帧输出的样子-

我想在这里逐行计算苹果、香蕉、芒果和橙子的 mse。 (AValues-实际值,fvalues-预测值)

我正在尝试下面的代码-

from sklearn.metrics import mean_squared_error
mean_squared_error(mse_df['AValues'],mse_df['fvalues'])

但是,它给了我总的 mse,而不是单独的或逐行的。

你能帮我看看怎么才能找到mse吗?

我很惊讶您导入的这个 mean_square_error 函数没有 axis kwarg。相反,使用 numpy

import numpy as np
MSE = np.mean((mse_df['AValues'] - mse_df['fvalues'])**2, axis=ax)

其中 ax 是您希望计算平均值的轴。我不太熟悉 pandas,但如果它们与 numpy 数组/矩阵/类似的形状相同,它可能会是 axis=1,尽管它可能是 axis=0