Python版本:Python3.6.2
一、日负荷曲线
摘自百度百科,日负荷曲线是描述一日内负荷随时间变化的曲线。
二、数据处理
数据:申请的爱尔兰开源用户用电数据,txt格式,一个文件将近400M,用写字板打开,很卡。
截取部分原始数据。数据附带的文档介绍,第一列是电表ID,第二列是时间,第三列是电量(kwh)。
其中,时间5位数,前3位表示天,后2位取值:1-48,即每半小时记录一次电表。
先导入Splunk,简单处理后,截取某一天中所有用户的用电数据:
现想将其转换成48个属性的矩阵数据,代码如下:
import csv
import numpy as npfilename = 'D:\sunfl\sunflower\study\Jupyter Notebook/file1_728_sort.csv'res = np.loadtxt(fname=filename,dtype=str,delimiter=',',skiprows=1,usecols=2)
#print(res)
data = [] #一维数组for i in range(len(res)):tt = eval(res[i])data.append(float(tt))
#print(data) #所有用户的电量数据都放在一维数组里count_row = round(len(data)/48)
data = np.array(data).reshape(count_row,48)
print(data) #处理成一行48个属性
运行结果如下:
[[0.11 0.106 0.049 ... 0.02 0.02 0.02 ][1.113 1.083 1.08 ... 1.092 1.079 1.081][0.364 0.03 0.084 ... 0.089 0.03 0.091]...[1.027 0.158 0.238 ... 0.172 0.215 0.187][0.321 0.089 0.15 ... 0.073 0.158 0.088][0.477 0.142 0.273 ... 0.302 0.179 0.278]]
每一行代表一个用户,一共48列,第0列表示00:30,第1列表示01:30···第47列表示00:00。
三、画日负荷曲线图
x = [i for i in range(48)]
for i in range(len(data)):plt.plot(x, data[i])
plt.show()#画出904个用户的用电曲线图
接下来用聚类算法画出聚类后的曲线,未完待续。。。