读取一个excel,得到一个2880行2列的数据(fact,pred),按照96行作为一次计算数据进行rmse计算,循环计算出一个月每一天的rmse
时间: 2024-02-22 21:00:35 浏览: 125
MATLAB读取excel,循环读取每一行
5星 · 资源好评率100%
好的,您的问题是如何按照每天96行进行RMSE计算,得到一个月每一天的RMSE。我可以为您提供一个Python代码示例,如下所示:
```python
import pandas as pd
import numpy as np
from sklearn.metrics import mean_squared_error
# 读取Excel数据
data = pd.read_excel('data.xlsx', header=None, names=['fact', 'pred'])
# 将数据按照每天96行进行分组
groups = [data.iloc[i:i+96] for i in range(0, len(data), 96)]
# 计算每组数据的RMSE
rmse_list = []
for group in groups:
fact = np.array(group['fact'])
pred = np.array(group['pred'])
rmse = np.sqrt(mean_squared_error(fact, pred))
rmse_list.append(rmse)
# 输出每天的RMSE
for i, rmse in enumerate(rmse_list):
print('Day {}: {:.4f}'.format(i+1, rmse))
```
这段代码中,我们首先使用Pandas库读取Excel数据,并将其命名为“fact”和“pred”两列。然后,我们使用列表推导式将数据按照每天96行进行分组,并将每组数据传递给Scikit-learn库中的mean_squared_error函数来计算RMSE。最后,我们将每天的RMSE输出到控制台。
请注意,此代码示例仅用于演示如何按照每天96行进行RMSE计算,实际情况中,您可能需要根据您的数据结构和需求进行适当的修改。
阅读全文