前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python数据分析--时间序列周期规律

Python数据分析--时间序列周期规律

原创
作者头像
MiaoGIS
发布2022-05-19 17:14:41
2.3K0
发布2022-05-19 17:14:41
举报
文章被收录于专栏:Python in AI-IOTPython in AI-IOT

时间序列数据(经济,气象,活动现象等)可能拥有季节性规律,通常使用AR(自回归),MA(滑动均值),ARIMA(滑动均值自回归)等模型来发现其中潜在的规律。

下面用数据分析库statsmodels中的seasonal_decompose函数来分析某国控站点监测的空气质量历史数据:

代码如下:

代码语言:python
复制
import os
import pandas as pd
import matplotlib.pylab as plt
import statsmodels.tsa.seasonal as sm_seasonal

dataDir='D:/DataC/db/air'
 
def getData(start,end,station):
    date_range=pd.date_range(start,end,freq='d')  
    dfs=[]
    for date in date_range:
        dataFile='%s.pkl'%date.strftime('%Y-%m-%d')
        dataFile=os.path.join(dataDir,dataFile)      
        if not os.path.exists(dataFile):
            continue
        df0=pd.read_pickle(dataFile)
        df0=df0[df0.SITECODE==station]
        dfs.append(df0)
    df=pd.concat(dfs)   
    return df
            
def seasonPlot(df,factor):
   
    series=df[factor].fillna(0)
    decomposeResult=sm_seasonal.seasonal_decompose(series)
    fig=decomposeResult.plot()
    ax0,*axes=tuple(fig.get_axes())
    for ax in axes:
        ax.sharex(ax0) 
    plt.show()

if __name__=='__main__':
    start='2019'
    end='2020'
    station='2567A'
    factor='O3'
    #以原始小时数据分析
    df=getData(start,end,station)
    df0=df.set_index('MONITORTIME',inplace=True)
    df0=df.asfreq('H') 
    seasonPlot(df0,factor)
    #采样为日数据重新分析
    df0=df0.resample('D').mean()

    seasonPlot(df0,factor)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档