本文將介紹如何通過python來讀取、展現時間序列數據。
讀取
時間序列數據一般用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的可視化方法,下一篇將介紹時間序列的分解方法,目的是通過分解出的時間序列的各個成分來進一步的了解時間序列。
ok,本篇就這么多內容啦~,感謝閱讀O(∩_∩)O。