读取一个excel,有3列数据,日期,实际功率,预测功率,按照日期每日进行计算,首先对实际功率和预测功率中数值同时小于0.594的数值删除,然后对其计算,先计算公式第一部分,实际功率除以实际功率与预测功率的和再减去0.5的结果绝对值为X,第二部分是实际功率减去预测功率的绝对值为Y,然后对实际功率减去预测功率的绝对值循环计算进行Σ求和结果为Z,然后将X乘以Y除以Z得到Q,在对Q进行循环求和再乘以2代码实现
时间: 2024-03-21 13:37:57 浏览: 25
以下是Python实现代码,需要用到pandas库和numpy库:
```python
import pandas as pd
import numpy as np
# 读取Excel文件
df = pd.read_excel("filename.xlsx", usecols=[0,1,2])
# 删除实际功率和预测功率中小于0.594的数值
df = df[(df['实际功率'] >= 0.594) | (df['预测功率'] >= 0.594)]
# 按日期进行分组计算
grouped = df.groupby('日期')
# 定义计算函数
def calculate(group):
# 计算X
x = abs(group['实际功率'] / (group['实际功率'] + group['预测功率']) - 0.5)
# 计算Y
y = abs(group['实际功率'] - group['预测功率'])
# 计算Z
z = np.sum(y)
# 计算Q
q = np.sum(x * y) / z
return q
# 计算每日的Q值并求和
result = np.sum(grouped.apply(calculate)) * 2
print(result)
```
其中,filename.xlsx是要读取的Excel文件名,第2行代码中的usecols参数指定了要读取的列,这里为前3列。计算函数calculate中,group为每日的数据分组,x、y、z、q分别为公式中的四个部分。最后,np.sum(grouped.apply(calculate)) * 2计算出每日的Q值并求和。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)