python 对两个df中相同时间的wpd列和winpd列求MAE和RMSE
时间: 2024-12-23 22:21:26 浏览: 16
为了计算两个DataFrame中相同时间点的WPD列(假设为`df1['WPD']`)和WinPD列(`df2['WinPD']`)之间的均绝对误差(MAE)和均方根误差(RMSE),你可以按照以下步骤操作:
首先,确保两个DataFrame的时间索引是一致的,可以使用`pandas`的`merge`或`join`方法来合并它们,依据时间列进行匹配。
```python
# 假设df1和df2都有名为'time_column'的时间列
merged_df = pd.merge(df1, df2, on='time_column', how='inner') # 使用内连接只保留两列有对应时间的数据
# 现在merged_df中有两个WPD列,我们取平均作为实际值
actuals = merged_df[['WPD_x', 'WPD_y']].mean(axis=1)
# 同理,处理WinPD列
predictions = merged_df[['WinPD_x', 'WinPD_y']].mean(axis=1)
```
接着,计算MAE和RMSE:
```python
from sklearn.metrics import mean_absolute_error, mean_squared_error
import numpy as np
mae = mean_absolute_error(actuals, predictions)
rmse = np.sqrt(mean_squared_error(actuals, predictions))
print(f"Mean Absolute Error (MAE): {mae}")
print(f"Root Mean Square Error (RMSE): {rmse}")
```
这段代码首先合并了两个DataFrame并计算了每个时间点的WPD和WinPD的平均值,然后使用`sklearn.metrics`库中的函数来计算MAE和RMSE。
阅读全文