关于家庭用电数据分析
数据参数解释
本文主要分析的是有功功率,所以可以暂时忽略无功功率
数据库的导入
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from pyecharts.charts import Pie
from pyecharts.charts import *
import pyecharts.options as opts
from statsmodels.tsa.seasonal import seasonal_decompose
plt.rcParams['font.sans-serif'] = ['SimHei'] #设置中文字体为黑体
plt.rcParams['axes.unicode_minus'] = False #正常显示负号
pd.set_option('display.float_format',lambda x : '%.2f' % x)#pandas禁用科学计数法
pyecharts是Echarts是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。
此外本文还用到了statsmodels库,是一个Python库,用于拟合多种统计模型,执行统计测试以及数据探索和可视化。statsmodels包含更多的“经典”频率学派统计方法,而贝叶斯方法和机器学习模型可在其他库中找到。
我在安装statmodels库时参考了这篇文章,有需要的可以看看:
https://blog.csdn.net/m0_48313550/article/details/124731922
数据处理
重命名
data.rename(columns={'Date':'日期','Time':'时间','Global_active_power':'有功功率','Global_reactive_power':'无功功率','Voltage':'电压','Global_intensity':'电流','Sub_metering_1': '厨房的有功功率','Sub_metering_2': '洗衣房的有功功率','Sub_metering_3': '电热水器和空调的有功功率',
},inplace=1)
data.head()
全英文的列名不方便像我这种英语不太好的靓仔分析数据,所以我把列名都换成了中文的
时间格式转换
data['日期']=data['日期'].str.replace('/07','/2007')
data['时间']=data['时间'].astype(str)
data['日期']=data['日期'].astype(str)
data['index'] = pd.to_datetime(data['日期'] +' '+ data['时间'],format='%d/%m/%Y %H:%M:%S',errors='coerce')
data=data.drop(['日期','时间'],axis=1)
data.head()
将日期列的07转化成2007,并且把时间列的数据转化成str格式,将日期列的时间列合并成索引列,并删除日期和时间列
转换后:
我们使用info()函数发现最后的电热水器空调的有功功率的数值是有缺失的,由于数据量比较大,但是缺失的数据量并不是特别的大,这里我们可以选择删除
异常值处理
# 异常值处理
data = data.replace('?',np.NAN)
data['厨房的有功功率'] = data['厨房的有功功率'].astype('float64')
data['洗衣房的有功功率'] = data['洗衣房的有功功率'].astype('float64')
data['总功率']=data['厨房的有功功率']+data['洗衣房的有功功率']+data['电热水器和空调的有功功率']
仔细观察我们能够发现有一些数据是?,这种异常值格式,我们可以把异常值转换成空值,然后计算出总功率,加入原数据集中。
用电量可视化
sum_data = data[['厨房的有功功率','洗衣房的有功功率','电热水器和空调的有功功率']].sum()
plt.pie(sum_data,labels=['厨房的有功功率','洗衣房的有功功率','电热水器和空调的有功功率'],autopct='%3.1f%%',explode=[0.2,0.2,0],radius=2)
# plt.title('不同家电的有功功率')
# plt.legend(loc="upper right")
plt.show()
不同类型的家庭用电量和总用电量的关系
通过对时间序列的可视化的方式对家庭用电趋势进行数据分析
家庭用电趋势图
plt.figure(figsize=(12,8))
plt.subplot(321)
plt.plot(mon_sum.index,mon_sum['厨房的有功功率'])
plt.title('厨房的有功功率')
plt.subplot(322)
plt.plot(mon_sum.index,mon_sum['洗衣房的有功功率'])
plt.title('洗衣房的有功功率')
plt.subplot(323)
plt.plot(mon_sum.index,mon_sum['电热水器和空调的有功功率'])
plt.title('电热水器和空调的有功功率')
plt.subplot(324)
plt.plot(mon_sum.index,mon_sum.values)
plt.title('总有用功功率')
plt.subplot(3)
后续可以分析周一到周天的用电量
使用weekday()函数,返回0到6的数值,代表周一到周天。
关于家庭用电数据分析相关推荐
- 机器学习实验(一):运用机器学习(Kmeans算法)判定家庭用电主因
声明:版权所有,转载请联系作者并注明出处 http://blog.csdn.net/u013719780?viewmode=contents 博主简介:风雪夜归子(Allen),机器学习算法攻城狮, ...
- 如何建立Multi-Step(多步预测)的LSTM时间序列模型(以对家庭用电预测为例)
译自How to Develop LSTM Models for Multi-Step Time Series Forecasting of Household Power Consumption~ ...
- LSTM模型对家庭用电进行多步时间序列预测
随着智能电表的兴起和太阳能电池板等发电技术的广泛应用,有大量可用的用电数据.这些数据代表了一系列与电力相关的多元时间序列,进而可以用来建模甚至预测未来的用电量.与其他机器学习算法不同,长短时记忆递归神 ...
- 线性回归预测--家庭用电功率与时间的关系功率与电流的关系
线性回归预测–家庭用电功率与时间的关系&&功率与电流的关系 具体过程如下: import time import numpy as np import pandas as pd imp ...
- 线性回归多项式拟合——家庭用电预测
LinearRegression模型参数 fit_intercept: 训练的模型是否包含截距,默认为为True,表示包含 LinearRegression模型属性 coef_ :模型训练好后的参数列 ...
- 机器学习案例——‘线性回归预测家庭用电与时间关系‘ 中格式化时间字符串问题
在机器学习的线性回归案例**"家庭用电案例"**中遇到的问题,自己记录下来. // 需求:把数据集中,字符串类型的时间信息------>数字类型,保存成样本集X # 创建一个 ...
- 开发和设计实现LSTM模型用于家庭用电的多步时间序列预测
鉴于智能电表的兴起以及太阳能电池板等发电技术的广泛采用,有大量的用电数据可供选择.该数据代表了多变量时间序列的功率相关变量,这些变量又可用于建模甚至预测未来的电力消耗. 与其他机器学习算法不同,长期短 ...
- 安全健康的使用计算机就要注意,家庭用电安全知识有哪些?了解一下?
随着科学技术的发展和市民生活质量的提高,电视机.电冰箱.电饭锅.电吹风.电熨斗.电热毯等"电"字打头的电器和空调机.计算机.录像机.洗衣机等"机"字收尾的家用电 ...
- 家庭用电都是交流电,为何会有零线和火线的区别?
交流电是世界上使用最广泛的一种电流形式,交流电是指电流方向随时间作周期性变化的电流. 直流电我们也很熟悉,直流电的电流在流动过程中电流方向不会发生变化,并且我们知道,电流是从正极流向负极,如果我们用这 ...
最新文章
- sql server修改字段编码格式_原理:一条 sql 的执行过程详解
- 东财在线计算机应用基础作业,《计算机应用基础》东财在线20秋第一套作业答案...
- 【好文翻译】10个免费的压力测试工具(Web)
- 小米随身wifi没有网络显示无服务器,小米wifi怎么用 小米随身wifi无法上网怎么办...
- 信号与系统19(拉普拉斯逆变换)
- 文件服务器版压缩工具,FileOptimizer文件压缩工具
- 使用html查看dicom,LEADTOOLS构建HTML5 DICOM/PACS查看器(二)
- 「消息秒回」是一种美德
- mysql innodb 唯一键里的字段为什么不能为NULL
- 软件工程师嵌入式开发交流论坛推荐排行
- 什么是 yum?更改yum源 yum的相关命令
- 关于通用人工智能的思考
- 关于战棋对战化的设想和实现
- 矩阵顺逆时针旋转、翻转 java
- EastWave应用案例:同轴线仿真
- Matlab中的匿名函数如何使用?
- python自我总结笔记、加上一些自己思考_2020.1 月 阿巛个人总结
- chorme-调试模式基本使用
- python中画地图map的用法_使用basemap和python在地图中绘制海洋
- 420个生活小窍门,很有用的哦