python - 使用 Pandas 进行基本矩阵计算
问题描述
变量:
y_hat = pd.DataFrame([x1,x2,x3,x4,x5])
y_actual = pd.DataFrame(Macro.iloc[8:13,1:2])
我有一个熊猫数据框y_hat
:
y_hat
Out[24]:
0
0 409.612553
1 573.936775
2 256.213344
3 136.219153
4 419.977863
我有一个熊猫数据框y_actual
:
y_actual
Out[25]:
y
8 422.40
9 580.42
10 256.76
11 128.96
12 445.42
我本质上是在尝试计算 y_actual 和 y_hat 之间的 MAPE(平均百分比误差)。R 代码看起来像:
MAPE = colmeans(abs((y_hat - y_actual)/y_actual)*100)
但是在 Python 中,我什至无法通过第一步y_hat - y_actual
,因为它返回错误:
y_hat - y_actual
Out[29]:
0 y
0 NaN NaN
1 NaN NaN
2 NaN NaN
3 NaN NaN
4 NaN NaN
8 NaN NaN
9 NaN NaN
10 NaN NaN
11 NaN NaN
12 NaN NaN
我可以使用 Pandas 数据框运行此计算吗?是否有与 colmeans (列的平均值)等效的 Python 函数?
解决方案
您可以在其他答案中使用类似的方法尝试以下操作:
import numpy as np
print(np.mean(np.abs((y_actual.values - y_hat.values) / y_actual.values)) * 100)
推荐阅读
- unity3d - Unity精灵动画在循环中改变第一个精灵
- java - 如何从rest api序列化枚举列表
- laravel - 从模态上传的 Laravel 文件返回空白
- c++ - 在 C++ 和 opengl 中苦苦挣扎的内存管理
- tensorflow - Tensorflow Object Detection API 的数据增强是否会产生比原始样本更多的样本?
- jquery - 我如何用伪代码编写这些 jquery 方法?
- angular - Angular:等待加载异步数据的正确方法
- android - java:将位置转换为字符串并返回
- oracle-apex - 将应用程序从 APEX 18.2 导入到 APEX 5.1.3
- python - Python 机器人,添加反应