用python做时间序列预测2:时间序列的一般数据格式和可视化

读取

时间序列数据一般用cvs等电子表格的形式存储,这里以cvs为例:

from dateutil.parser import parse 
from datetime import datetime
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
params = {
    'font.family': 'serif',         
    'font.serif': 'FangSong',         
    'font.style': 'italic',          
    'font.weight': 'normal',  # or 'blod'         
    'font.size': 12,  # 此处貌似不能用类似large、small、medium字符串          
    'axes.unicode_minus': False         
    }
rcParams.update(params)
import matplotlib.pyplot as plt
import pandas as pd
# 未来pandas版本会要求显式注册matplotlib的转换器,所以添加了下面两行代码,否则会报警告
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()

# Import as Dataframe
date_parse = lambda x: datetime.strptime(x, '%Y-%m-%d')
ser  = pd.read_csv(
'https://raw.githubusercontent.com/selva86/datasets/master/a10.csv',
                        index_col='Month', # 指定索引列                   
                        parse_dates=['Month'], # 将指定列按照日期格式来解析                   
                        date_parser=date_parse) # 日期格式解析器
ser .head()

可视化

import matplotlib.pyplot as plt
df = pd.read_csv('https://raw.githubusercontent.com/selva86/datasets/master/a10.csv', parse_dates=['date'], index_col='date')

# Draw Plotdef plot_df(df, x, y, title="", xlabel='Date', ylabel='Value', dpi=100):
    plt.figure(figsize=(16,5), dpi=dpi)
    plt.plot(x, y, color='tab:red')
    plt.gca().set(title=title, xlabel=xlabel, ylabel=ylabel)
    plt.show()

plot_df(df, x=df.index, y=df.value, title='Monthly anti-diabetic drug sales in Australia from 1992 to 2008.')    

本篇介绍了时间序列的一般数据格式和基于python的可视化方法,下一篇将介绍时间序列的分解方法,目的是通过分解出的时间序列的各个成分来进一步的了解时间序列。

 

原文作者: 程序员一一涤生(云+社区)

posted @ 2020-07-01 17:37  泡泡茶壶i  阅读(160)  评论(0编辑  收藏  举报