家庭用电数据分析与 Prophet 预测
本次分析基于 Kaggle 上的 Household Electricity Consumption 数据集,包含一个家庭在 2007 年 1 月至 6 月间的详细用电记录。数据涵盖全球有功功率、无功功率、电压、电流强度以及厨房、洗衣房和电热水器/空调的分项计量信息,共计约 26 万条测量值。
数据预处理
首先加载数据并查看前几行,了解数据结构。
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()
原始数据中部分数值列包含缺失标记(如'?'),且日期列为字符串格式。我们需要将其转换为标准的时间戳和浮点数类型。
from tqdm.auto import tqdm
from ipywidgets import HBox, FloatProgress, HTML
# 将 'Date' 列转换为日期时间格式
df['Date'] = pd.DatetimeIndex(df['Date'])
# 定义需要转换为数字的列
make_em_num = [
'Globalactivepower', 'Globalreactivepower', 'Voltage',
'Global_intensity', 'Submetering1', 'Submetering2', 'Submetering3'
]
# 定义转换函数,处理非数字字符
def floating(string):
try:
return float(string)
except:
return float(0)
# 批量转换数据类型
for column in tqdm(make_em_num):
df[column] = df[column].apply(lambda item: floating(item))


