import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
# 读取Excel数据
excel_path="C:/Users/CURRY/Desktop/DHW/DHW.xlsx"
d=pd.read_excel(excel_path,sheet_name='Sheet1')
# 基础资料
NumberOfUnits=150
WaterVolumePerDayPerUnit=160 # L/d
SpecificHeat=4.18 # kJ/K/kg
Density=1000 # kg/m^3
# 分摊得到逐时热水负荷
j=0
HourlyWaterLoad=[] # kW
for i in range(0,8760):
HourlyWaterLoad.append(NumberOfUnits*WaterVolumePerDayPerUnit/1000*Density*SpecificHeat*(60-d.HourlyWaterTemp[i])*d.Ratio[i%24]/100/3600)
# 1kJ=3600kWh
# 将数据写入csv
dataframe = pd.DataFrame({r'hot water':HourlyWaterLoad})
dataframe.to_csv("C:/Users/CURRY/Desktop/DHW/DHWLoad.csv",index=False,sep=',')
# 统计每月的热水负荷
monthNum=[0,31,28,31,30,31,30,31,31,30,31,30,31]
month=[] # kWh
s=0
for i in range(1,13):
for j in range(monthNum[i-1]*24,monthNum[i]*24):
s=s+HourlyWaterLoad[j]
month.append(s/1000) # MWh
# 画图
t=np.linspace(1,12,12)
plt.figure(num=2,figsize=(8,5))
plt.bar(t,month,facecolor='red', edgecolor='black')
plt.xlabel('month')
plt.ylabel('Load [MWh]')
ax=plt.gca()
ax.set_title('MonthlyWaterLoad',fontsize='16',color='black')
new_ticks=np.linspace(1,12,12)
plt.xticks(new_ticks,['Jan','Feb','Mar','Apr','May','Jun','July','Aug','Sep','Oct','Nov','Dec'])
# 设置数据标签
for x, y in zip(t, month):
plt.text(x, y + 0.05, '%.1f' % y, ha='center', va='bottom')
plt.show()
利用Pandas读取Excel数据并简单处理2
最新推荐文章于 2023-03-28 15:22:10 发布