版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2022年01月時(shí)間序列總結(jié)了解熟悉掌握掌握學(xué)習(xí)目標(biāo)了解 什么是時(shí)間序列,ARIMA12掌握 時(shí)間序列的基本操作掌握 時(shí)期,重采樣34熟悉 滑動(dòng)窗口的使用目錄01 時(shí)間序列的基本操作02 固定頻率的時(shí)間序列03 時(shí)間周期及計(jì)算04 重采樣05 數(shù)據(jù)統(tǒng)計(jì)滑動(dòng)窗口06 時(shí)序模型ARIMA1.時(shí)間序列的基本操作01 時(shí)間序列的基本操作02 固定頻率的時(shí)間序列03 時(shí)間周期及計(jì)算04 重采樣05 數(shù)據(jù)統(tǒng)計(jì)滑動(dòng)窗口06 時(shí)序模型ARIMA問題思考:什么是時(shí)間序列?時(shí)間序列的概念時(shí)間序列是指多個(gè)時(shí)間點(diǎn)上形成的數(shù)值序列,它既可以是定期出現(xiàn)的,也可以是不定期出現(xiàn)的。時(shí)間序列的數(shù)據(jù)種類時(shí)間序列的數(shù)據(jù)主要有以下幾
2、種:時(shí)間戳表示特定的時(shí)刻,比如現(xiàn)在時(shí)期比如2018年或者2018年10月時(shí)間間隔由起始時(shí)間戳和結(jié)束時(shí)間戳表示創(chuàng)建時(shí)間序列Pandas中,時(shí)間戳使用Timestamp(Series派生的子類)對(duì)象表示。該對(duì)象與datetime具有高度的兼容性,可以直接通過to_datetime()函數(shù)將datetime轉(zhuǎn)換為TimeStamp對(duì)象。pd.to_datetime(20180828) 創(chuàng)建時(shí)間序列如果傳入的是多個(gè)datetime組成的列表,則Pandas會(huì)將其強(qiáng)制轉(zhuǎn)換為DatetimeIndex類對(duì)象。date_index = pd.to_datetime(20180820,20180828, 20
3、180908)DatetimeIndex(2018-08-20, 2018-08-28, 2018-09-08,dtype=datetime64ns, freq=None)創(chuàng)建時(shí)間序列在Pandas中,最基本的時(shí)間序列類型就是以時(shí)間戳為索引的Series對(duì)象。date_ser = pd.Series(11, 22, 33, index=date_index)2018-08-20 112018-08-28 222018-09-08 33創(chuàng)建時(shí)間序列還可以將包含多個(gè)datetime對(duì)象的列表傳給index參數(shù),同樣能創(chuàng)建具有時(shí)間戳索引的Series對(duì)象。date_list = datetime(2
4、018, 1, 1), datetime(2018, 1, 15time_se = pd.Series(np.arange(6), index=date_list)創(chuàng)建時(shí)間序列如果希望DataFrame對(duì)象具有時(shí)間戳索引,也可以采用上述方式進(jìn)行創(chuàng)建。data_demo = 11, 22, 33, 44, 55, 66date_list = datetime(2018, 1, 23), datetime(2018, 2, 15)time_df = pd.DataFrame(data_demo, index=date_list)通過時(shí)間戳索引選取子集最簡(jiǎn)單的選取子集的方式,是直接使用位置索引來獲取
5、具體的數(shù)據(jù)。# 根據(jù)位置索引獲取數(shù)據(jù)time_se3通過時(shí)間戳索引選取子集還可以使用datetime構(gòu)建的日期獲取其對(duì)應(yīng)的數(shù)據(jù)。date_time = datetime(2015, 6, 1)date_sedate_time通過時(shí)間戳索引選取子集還可以在操作索引時(shí),直接使用一個(gè)日期字符串(符合可以被解析的格式)進(jìn)行獲取。date_se20150530date_se2018/01/23通過時(shí)間戳索引選取子集如果希望獲取某年或某個(gè)月的數(shù)據(jù),則可以直接用指定的年份或者月份操作索引。date_se2015通過時(shí)間戳索引選取子集除了使用索引的方式以外,還可以通過truncate()方法截取Series或
6、DataFrame對(duì)象。truncate(before = None,after = None,axis = None,copy = True)before - 表示截?cái)啻怂饕抵暗乃行小?after - 表示截?cái)啻怂饕抵蟮乃行小?axis - 表示截?cái)嗟妮S,默認(rèn)為行索引方向。2.固定頻率的時(shí)間序列01 時(shí)間序列的基本操作02 固定頻率的時(shí)間序列03 時(shí)間周期及計(jì)算04 重采樣05 數(shù)據(jù)統(tǒng)計(jì)滑動(dòng)窗口06 時(shí)序模型ARIMA創(chuàng)建固定頻率的時(shí)間序列Pandas中提供了一個(gè)date_range()函數(shù),主要用于生成一個(gè)具有固定頻率的DatetimeIndex對(duì)象。date_range(st
7、art = None, end = None, periods = None, freq = None, tz = None, normalize = False, name = None, closed = None,* kwargs)start:表示起始日期,默認(rèn)為None。end:表示終止日期,默認(rèn)為None。periods:表示產(chǎn)生多少個(gè)時(shí)間戳索引值。freq:用來指定計(jì)時(shí)單位。創(chuàng)建固定頻率的時(shí)間序列start、end、periods、freq這四個(gè)參數(shù)至少要指定三個(gè)參數(shù),否則會(huì)出現(xiàn)錯(cuò)誤。創(chuàng)建固定頻率的時(shí)間序列當(dāng)調(diào)用date_range()函數(shù)創(chuàng)建DatetimeIndex對(duì)象時(shí),如果
8、只是傳入了開始日期(start參數(shù))與結(jié)束日期(end參數(shù)),則默認(rèn)生成的時(shí)間戳是按天計(jì)算的,即freq參數(shù)為D。pd.date_range(2018/08/10, 2018/08/20)創(chuàng)建固定頻率的時(shí)間序列如果只是傳入了開始日期或結(jié)束日期,則還需要用periods參數(shù)指定產(chǎn)生多少個(gè)時(shí)間戳。pd.date_range(start=2018/08/10, periods=5)pd.date_range(end=2018/08/10, periods=5)創(chuàng)建固定頻率的時(shí)間序列如果希望時(shí)間序列中的時(shí)間戳都是每周固定的星期日,則可以在創(chuàng)建DatetimeIndex時(shí)將freq參數(shù)設(shè)為“W-SUN”
9、。dates_index = pd.date_range(2018-01-01, periods=5, freq=W-SUN)創(chuàng)建固定頻率的時(shí)間序列如果日期中帶有與時(shí)間相關(guān)的信息,且想產(chǎn)生一組被規(guī)范化到當(dāng)天午夜的時(shí)間戳,可以將normalize參數(shù)的值設(shè)為True。pd.date_range(start=2018/8/1 12:13:30, periods=5, normalize=True, tz=Asia/Hong_Kong)時(shí)間序列的頻率、偏移量默認(rèn)生成的時(shí)間序列數(shù)據(jù)是按天計(jì)算的,即頻率為“D”。“D”是一個(gè)基礎(chǔ)頻率,通過用一個(gè)字符串的別名表示,比如“D”是“day”的別名。頻率是由一個(gè)
10、基礎(chǔ)頻率和一個(gè)乘數(shù)組成的,比如,“5D”表示每5天。時(shí)間序列的頻率、偏移量通過一張表來列舉時(shí)間序列的基礎(chǔ)頻率。時(shí)間序列的頻率、偏移量通過一張表來列舉時(shí)間序列的基礎(chǔ)頻率。時(shí)間序列的頻率、偏移量每個(gè)基礎(chǔ)頻率還可以跟著一個(gè)被稱為日期偏移量的DateOffset對(duì)象。如果想要?jiǎng)?chuàng)建一個(gè)DateOffset對(duì)象,則需要先導(dǎo)入pd.tseries.offsets模塊后才行。from pandas.tseries.offsets import *DateOffset(months=4, days=5)時(shí)間序列的頻率、偏移量還可以使用offsets模塊中提供的偏移量類型進(jìn)行創(chuàng)建。Week(2) + Hour(1
11、0)例如,創(chuàng)建14天10小時(shí)的偏移量,可以換算為兩周零十個(gè)小時(shí),其中“周”使用Week類型表示的,“小時(shí)”使用Hour類型表示,它們之間可以使用加號(hào)連接。時(shí)間序列的移動(dòng)移動(dòng)是指沿著時(shí)間軸方向?qū)?shù)據(jù)進(jìn)行前移或后移。時(shí)間序列的移動(dòng)Pandas對(duì)象中提供了一個(gè)shift()方法,用來前移或后移數(shù)據(jù),但數(shù)據(jù)索引保持不變。shift(periods=1,freq=None,axis=0)periods - 表示移動(dòng)的幅度,可以為正數(shù),也可以為負(fù)數(shù),默認(rèn)值是1,代表移動(dòng)一次。3.時(shí)間周期及計(jì)算01 時(shí)間序列的基本操作02 固定頻率的時(shí)間序列03 時(shí)間周期及計(jì)算04 重采樣05 數(shù)據(jù)統(tǒng)計(jì)滑動(dòng)窗口06 時(shí)序模
12、型ARIMA創(chuàng)建時(shí)期對(duì)象pd.Period(2018)創(chuàng)建Period類對(duì)象的方式比較簡(jiǎn)單,只需要在構(gòu)造方法中以字符串或整數(shù)的形式傳入一個(gè)日期即可。Period類表示一個(gè)標(biāo)準(zhǔn)的時(shí)間段或時(shí)期,比如某年、某月、某日、某小時(shí)等。pd.Period(2017/6)創(chuàng)建時(shí)期對(duì)象Period對(duì)象能夠參與數(shù)學(xué)運(yùn)算。如果Period對(duì)象加上或者減去一個(gè)整數(shù),則會(huì)根據(jù)具體的時(shí)間單位進(jìn)行位移操作,period = pd.Period(2017/6)period + 1Period(2017-07, M)創(chuàng)建時(shí)期對(duì)象如果具有相同頻率的兩個(gè)Period對(duì)象進(jìn)行數(shù)學(xué)運(yùn)算,那么計(jì)算結(jié)果為它們的單位數(shù)量。pd.Period
13、(2017/6)other_period = pd.Period(201201, freq=M )period - other_period65創(chuàng)建時(shí)期對(duì)象如果希望創(chuàng)建多個(gè)Period對(duì)象,且它們是固定出現(xiàn)的,則可以通過period_range()函數(shù)實(shí)現(xiàn)。period_index = pd.period_range(2012.1.8, 2012.3.31, freq=M)PeriodIndex(2012-01, 2012-02, 2012-03, dtype=periodM, freq=M)創(chuàng)建時(shí)期對(duì)象上述示例返回了一個(gè)PeriodIndex對(duì)象,它是由一組時(shí)期對(duì)象構(gòu)成的索引。Period對(duì)
14、象1Period對(duì)象2.Period對(duì)象N創(chuàng)建時(shí)期對(duì)象除了使用上述方式創(chuàng)建PeriodIndex外,還可以直接在PeriodIndex的構(gòu)造方法中傳入一組日期字符串。str_list = 2010, 2011, 2012pd.PeriodIndex(str_list, freq=A-DEC)創(chuàng)建時(shí)期對(duì)象DatetimeIndex是用來指代一系列時(shí)間點(diǎn)的一種索引結(jié)構(gòu),而PeriodIndex則是用來指代一系列時(shí)間段的索引結(jié)構(gòu)。時(shí)期的頻率轉(zhuǎn)換Pandas中提供了一個(gè)asfreq()方法來轉(zhuǎn)換時(shí)期的頻率。asfreq(freq,method = None,how = None,normalize =
15、 False,fill_value = None) freq - 表示計(jì)時(shí)單位。 how - 可以取值為start或end,默認(rèn)為end。 normalize - 表示是否將時(shí)間索引重置為午夜。fill_value - 用于填充缺失值的值。4.重采樣01 時(shí)間序列的基本操作02 固定頻率的時(shí)間序列03 時(shí)間周期及計(jì)算04 重采樣05 數(shù)據(jù)統(tǒng)計(jì)滑動(dòng)窗口06 時(shí)序模型ARIMA重采樣方法(resample)Pandas中的resample()是一個(gè)對(duì)常規(guī)時(shí)間序列數(shù)據(jù)重新采樣和頻率轉(zhuǎn)換的便捷的方法。resample(rule,how=None,axis=0,fill_method=None,clos
16、ed=None,label=None,.)rule - 表示重采樣頻率的字符串或DateOffset。fill_method - 表示升采樣時(shí)如何插值。closed - 設(shè)置降采樣哪一端是閉合的。重采樣方法(resample)例如,通過resample()方法對(duì)數(shù)據(jù)重新采樣。time_ser.resample(W-MON).mean()how參數(shù)不再建議使用,而是采用新的方式“.resample(.).mean()”求平均值。重采樣方法(resample)如果重采樣時(shí)傳入closed參數(shù)為left,則表示采樣的范圍是左閉右開型的。time_ser.resample(W-MON, closed=
17、left).mean()換句話說位于某范圍的時(shí)間序列中,開頭的時(shí)間戳包含在內(nèi),結(jié)尾的時(shí)間戳是不包含在內(nèi)的。降采樣降采樣時(shí)間顆粒會(huì)變大,數(shù)據(jù)量是減少的。為了避免有些時(shí)間戳對(duì)應(yīng)的數(shù)據(jù)閑置,可以利用內(nèi)置方法聚合數(shù)據(jù)。2018-1-12018-2-12018-3-12018-4-12018-5-12018-6-12018-7-12018-1-12018-4-12018-7-1降采樣股票數(shù)據(jù)比較常見的是OHLC重采樣,包括開盤價(jià)、最高價(jià)、最低價(jià)和收盤價(jià)。date_index = pd.date_range(2018/06/01, periods=30)shares_data = np.random.ra
18、nd(30)time_ser = pd.Series(shares_data, index=date_index)time_ser.resample(7D).ohlc()Pandas中專門提供了一個(gè)ohlc()方法。降采樣降采樣相當(dāng)于另外一種形式的分組操作,它會(huì)按照日期將時(shí)間序列進(jìn)行分組,之后對(duì)每個(gè)分組應(yīng)用聚合方法得出一個(gè)結(jié)果。time_ser.groupby(lambda x: x.week).mean()升采樣升采樣的時(shí)間顆粒是變小的,數(shù)據(jù)量會(huì)增多,這很有可能導(dǎo)致某些時(shí)間戳沒有相應(yīng)的數(shù)據(jù)。2018-1-12018-2-12018-3-12018-4-12018-5-12018-6-1201
19、8-7-12018-1-12018-4-12018-7-1升采樣遇到這種情況,常用的解決辦法就是插值,具體有如下幾種方式:通過ffill(limit)或bfill(limit)方法,取空值前面或后面的值填充,limit可以限制填充的個(gè)數(shù)。通過fillna(ffill)或fillna(bfill)進(jìn)行填充,傳入ffill則表示用NaN前面的值填充,傳入bfill則表示用后面的值填充。使用interpolate()方法根據(jù)插值算法補(bǔ)全數(shù)據(jù)。5.數(shù)據(jù)統(tǒng)計(jì)滑動(dòng)窗口01 時(shí)間序列的基本操作02 固定頻率的時(shí)間序列03 時(shí)間周期及計(jì)算04 重采樣05 數(shù)據(jù)統(tǒng)計(jì)滑動(dòng)窗口06 時(shí)序模型ARIMA數(shù)據(jù)統(tǒng)計(jì)滑動(dòng)窗
20、口滑動(dòng)窗口指的是根據(jù)指定的單位長(zhǎng)度來框住時(shí)間序列,從而計(jì)算框內(nèi)的統(tǒng)計(jì)指標(biāo)。相當(dāng)于一個(gè)長(zhǎng)度指定的滑塊在刻度尺上面滑動(dòng),每滑動(dòng)一個(gè)單位即可反饋滑塊內(nèi)的數(shù)據(jù)?;瑝K數(shù)據(jù)統(tǒng)計(jì)滑動(dòng)窗口滑動(dòng)窗口的概念比較抽象,下面我們來舉個(gè)例子描述一下。某分店按天統(tǒng)計(jì)了2017年全年的銷售數(shù)據(jù),現(xiàn)在總經(jīng)理想抽查分店8月28日(七夕)的銷售情況,如果只是單獨(dú)拎出來當(dāng)天的數(shù)據(jù),則這個(gè)數(shù)據(jù)比較絕對(duì),無法很好地反映出這個(gè)日期前后銷售的整體情況。數(shù)據(jù)統(tǒng)計(jì)滑動(dòng)窗口為了提升數(shù)據(jù)的準(zhǔn)確性,可以將某個(gè)點(diǎn)的取值擴(kuò)大到包含這個(gè)點(diǎn)的一段區(qū)間,用區(qū)間內(nèi)的數(shù)據(jù)進(jìn)行判斷。例如,我們可以將8月24日到9月2日的數(shù)據(jù)拿出來,求此區(qū)間的平均值作為抽查結(jié)果。數(shù)
21、據(jù)統(tǒng)計(jì)滑動(dòng)窗口這個(gè)區(qū)間就是窗口,它的單位長(zhǎng)度為10,數(shù)據(jù)是按天統(tǒng)計(jì)的,所以統(tǒng)計(jì)的是10天的平均指標(biāo),這樣顯得更加合理,可以很好地反映了七夕活動(dòng)的整體情況。6.數(shù)據(jù)統(tǒng)計(jì)滑動(dòng)窗口移動(dòng)窗口就是窗口向一端滑行,每次滑行并不是區(qū)間整塊的滑行,而是一個(gè)單位一個(gè)單位的滑行。例如,窗口向右邊滑行一個(gè)單位,此時(shí)窗口框住的時(shí)間區(qū)間范圍為2017-08-25到2017-09-03。數(shù)據(jù)統(tǒng)計(jì)滑動(dòng)窗口每次窗口移動(dòng),一次只會(huì)移動(dòng)一個(gè)單位的長(zhǎng)度,并且窗口的長(zhǎng)度始終為10個(gè)單位長(zhǎng)度,直至移動(dòng)到末端。由此可知,通過滑動(dòng)窗口統(tǒng)計(jì)的指標(biāo)會(huì)更加平穩(wěn)一些,數(shù)據(jù)上下浮動(dòng)的范圍會(huì)比較小。數(shù)據(jù)統(tǒng)計(jì)滑動(dòng)窗口Pandas中提供了一個(gè)窗口方法rolling()。rolling(window,min_periods=None,center=False,win_type=None,on=None,axis=0,closed=None)window - 表示窗口的大小。min_periods - 每個(gè)窗口最少包含的觀測(cè)值數(shù)量。center - 是否把窗口的標(biāo)簽設(shè)置為居中。win_type - 表示窗口的類型。closed - 用于定義區(qū)間的開閉。時(shí)序模型ARIMA01 時(shí)間序列的基本操作02 固定頻率的時(shí)間序列03 時(shí)間周期及計(jì)算04 重采樣05 數(shù)據(jù)統(tǒng)計(jì)滑動(dòng)窗口06 時(shí)序模型ARIMA時(shí)序模型ARI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026寧夏銀川潔能科技有限公司招聘4人筆試備考題庫(kù)及答案解析
- 2026年德宏州事業(yè)單位考試招聘工作人員(208人)筆試參考題庫(kù)及答案解析
- 2026上半年安徽事業(yè)單位聯(lián)考合肥市肥東縣招聘51人筆試備考試題及答案解析
- 2026民航醫(yī)學(xué)中心(民航總醫(yī)院)招聘應(yīng)屆畢業(yè)生45人考試備考試題及答案解析
- 2026年度蚌埠醫(yī)科大學(xué)公開招聘高層次人才預(yù)筆試備考試題及答案解析
- 2026年冶金起重機(jī)操作規(guī)范
- 2026年創(chuàng)傷骨科患者護(hù)理實(shí)務(wù)解析
- 2026年民宿設(shè)計(jì)與運(yùn)營(yíng)培訓(xùn)
- 首都師大附中科學(xué)城學(xué)校教師招聘筆試備考試題及答案解析
- 2026年贏戰(zhàn)年度計(jì)劃的具體落實(shí)
- 園林綠化養(yǎng)護(hù)日志表模板
- 電池回收廠房建設(shè)方案(3篇)
- 《建筑工程定額與預(yù)算》課件(共八章)
- 鐵路貨運(yùn)知識(shí)考核試卷含散堆裝等作業(yè)多知識(shí)點(diǎn)
- 幼兒游戲評(píng)價(jià)的可視化研究
- 跨區(qū)銷售管理辦法
- 金華東陽市國(guó)有企業(yè)招聘A類工作人員筆試真題2024
- 2025年6月29日貴州省政府辦公廳遴選筆試真題及答案解析
- 管培生培訓(xùn)課件
- 送貨方案模板(3篇)
- 2025年湖南省中考數(shù)學(xué)真題試卷及答案解析
評(píng)論
0/150
提交評(píng)論