Python画用电客户日负荷曲线图

Python版本:Python3.6.2

一、日负荷曲线

摘自百度百科,日负荷曲线是描述一日内负荷随时间变化的曲线。

二、数据处理

数据:申请的爱尔兰开源用户用电数据,txt格式,一个文件将近400M,用写字板打开,很卡。
截取部分原始数据。数据附带的文档介绍,第一列是电表ID,第二列是时间,第三列是电量(kwh)。
其中,时间5位数,前3位表示天,后2位取值:1-48,即每半小时记录一次电表。
Python画用电客户日负荷曲线图_第1张图片
先导入Splunk,简单处理后,截取某一天中所有用户的用电数据:

现想将其转换成48个属性的矩阵数据,代码如下:
import csv
import numpy as np

filename = '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个用户的用电曲线图
Python画用电客户日负荷曲线图_第2张图片
接下来用聚类算法画出聚类后的曲线,未完待续。。。

你可能感兴趣的:(用电行为分析)