读取一个excel,得到一个2880行3列的数据(时间,实际功率(MW),CLOUD短期(MW)),按照96行作为一次计算数据进行rmse计算,循环计算出一个月每一天的rmse
时间: 2024-02-22 11:00:38 浏览: 75
好的,您的问题是如何按照每天96行进行RMSE计算,得到一个月每一天的RMSE,其中数据包含时间、实际功率和CLOUD短期。我可以为您提供一个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=['time', 'actual_power', 'cloud_power'])
# 将数据按照每天96行进行分组
groups = [data.iloc[i:i+96] for i in range(0, len(data), 96)]
# 计算每组数据的RMSE
rmse_list = []
for group in groups:
actual = np.array(group['actual_power'])
cloud = np.array(group['cloud_power'])
rmse = np.sqrt(mean_squared_error(actual, cloud))
rmse_list.append(rmse)
# 输出每天的RMSE
for i, rmse in enumerate(rmse_list):
print('Day {}: {:.4f}'.format(i+1, rmse))
```
这段代码中,我们首先使用Pandas库读取Excel数据,并将其命名为“time”、“actual_power”和“cloud_power”三列。然后,我们使用列表推导式将数据按照每天96行进行分组,并将每组数据传递给Scikit-learn库中的mean_squared_error函数来计算RMSE。最后,我们将每天的RMSE输出到控制台。
请注意,此代码示例仅用于演示如何按照每天96行进行RMSE计算,实际情况中,您可能需要根据您的数据结构和需求进行适当的修改。另外,此代码示例计算的RMSE是实际功率和CLOUD短期之间的差距,您可能需要根据您的需求修改计算方式。
阅读全文