家庭用电数据分析与 Prophet 预测
数据集简介
本次分析基于 Kaggle 上的 Household Electricity Consumption 数据集,包含一个家庭在 2007 年 1 月至 6 月期间的用电记录。数据涵盖全球有功功率、无功功率、电压、电流强度以及分项计量(厨房、洗衣房、热水器/空调)等关键指标,共计约 26 万条测量值。
| 列名 | 说明 |
|---|---|
| Date | 日期 |
| Time | 时间 |
| Globalactivepower | 总有功功率(千瓦) |
| Globalreactivepower | 总无功功率(千瓦) |
| Voltage | 电压(伏特) |
| Global_intensity | 平均电流强度(安培) |
| Submetering1 | 厨房有功功率 |
| Submetering2 | 洗衣房有功功率 |
| Submetering3 | 热水器和空调有功功率 |
探索性分析
首先导入必要的库并读取数据。注意原始 CSV 文件通常带有索引列,读取时需指定。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data_path = "./household_power_consumption.csv"
df = pd.read_csv(data_path, index_col='index')
df.head()
查看前几行数据后,我们可以对数值列进行统计描述,了解数据分布情况。
df.describe()
接着检查各列的数据类型,确保后续处理无误。
df.dtypes
数据清洗与转换
原始数据中的部分数值列可能存储为字符串格式,且存在缺失或异常值。我们需要将其转换为浮点数,并处理日期格式。
from tqdm.auto import tqdm
from ipywidgets import HBox, FloatProgress, HTML
# 将'Date'列转换为日期时间格式
df['Date'] = pd.DatetimeIndex(df['Date'])
# 定义需要转换为数字的列
make_em_num = [
'Global_active_power', 'Global_reactive_power', ,
, , ,
]
():
:
(string)
:
()
column tqdm(make_em_num):
df[column] = df[column].apply( item: floating(item))


