Python计算每一行的MSE

标签 python pandas dataframe scikit-learn mse

我正在尝试计算数据框中每一行的 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)

这就是上面代码的数据帧输出的样子 - enter image description here

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

我正在尝试下面的代码-

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

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

您能帮我看看如何找到 mse 吗?

最佳答案

我很惊讶您导入的这个 mean_square_error 函数没有轴 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

关于Python计算每一行的MSE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71373649/

相关文章:

python - Google Analytics 数据到 Pandas Dataframe

python - 为什么我的代码打印其他字符?密码

python - 暗网重量训练 'Assertion ' 0' failed'

python - 基于另一个数据框 pandas 的匹配值的新列

Python pandas 将逗号分隔值列表转换为数据框

r - 如何在 R 中创建 for 循环来进行这种特殊的计算

python - 在 OSX 上调用 python 和 Spyder 的方法

python - 从 Docker 中的 Python 访问 GCP secret 管理器中的 secret - nontsop 权限被拒绝

python - 与列表的 Pandas DataFrame 列的比较

python - 查找 pandas DataFrame 值的索引