Python_时间序列处理及可视化_美国能源消耗数据集分析

数据集(PJME_hourly.csvPJMW_hourly.csv),可以在Kaggle官网下载。这里列出几个基本的任务。

任务:

  1. 读取数据,创建以时间列为索引的时间序列,截取2014年数据进行分析
  2. 时间序列数据清理:删除重复值,按时间排序
  3. 时间序列可视化:输出折线图、相关分析、时间序列重采样并绘图

"""
Created on Sat Dec 11 15:24:31 2021

@author: Zitong Hu
"""
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
import datetime
pjme_file = pd.read_csv('PJME_hourly.csv')
pjmw_file = pd.read_csv('PJMW_hourly.csv')

读取数据
TODO
df_1=pjme_file
df_2=pjmw_file

print('raw data:')
print(df_1.head())
print(df_2.head())
print('*'*40)

通过to_datetime 将时间列字符串转换为pandas的Timestamp格式,格式为:2014-11-02 02:00:00
TODO
df_1["Datetime"]=pd.to_datetime(df_1.Datetime)
df_2["Datetime"]=pd.to_datetime(df_2.Datetime)
对时间列进行统计
print(df_1.head())
print('df1:')
print(df_1['Datetime'].describe())
print('\ndf2:')
print(df_2['Datetime'].describe())
print('*'*40)

# TODO:将时间列作为行索引
df_1=df_1.set_index("Datetime")
df_2=df_2.set_index("Datetime")
# 第一行的时间并不等于上面的开始时间,这说明样本并不是按照时间顺序严格排序的
# 时间序列数据清理:
# 1. 出现重复的时间戳及样本需要移除
# 2. 样本排序混乱

# 选取2014年的数据
df_1 = df_1.loc["2014"]
df_2 = df_2.loc["2014"]
#print(df_1.head())
#print(df_2.head())
# TODO:删除重复时间的条目,按时间升序排序
df_1=df_1.drop_duplicates()
df_1=df_1.sort_values(by='Datetime')
#print(df_1.head())
df_2=df_2.drop_duplicates()
df_2=df_2.sort_values(by='Datetime')
#print(df_2.head())
# 时间序列可视化
fig,ax = plt.subplots(2,1)
df_1['2014-12'].plot(ax=ax[0])
df_2['2014-12'].plot(ax=ax[1])
plt.show()

plt.figure()
# TODO:对多元的时间序列进行相关分析,用seaborn可视化(散点图)
df_3=pd.merge(df_1, df_2,on='Datetime')
sns.regplot(x='PJME_MW',y='PJMW_MW',data=df_3)
plt.show()

TODO:时间序列重采样,聚合操作为平均(mean)
day_df = df_1.resample('D').mean()
week_df = df_1.resample("w").mean()
month_df = df_1.resample("m").mean()
quarter_df = df_1.resample("Q").mean()

fig,ax = plt.subplots(4,1, figsize=(6,8))
day_df.plot(ax=ax[0])
week_df.plot(ax=ax[1])
month_df.plot(ax=ax[2])
quarter_df.plot(ax=ax[3])
plt.show()

Original: https://blog.csdn.net/qq_40837128/article/details/121924382
Author: 九九hzt
Title: Python_时间序列处理及可视化_美国能源消耗数据集分析

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/676690/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球