Python數(shù)據(jù)分析與應(yīng)用-從數(shù)據(jù)獲取到可視化(第2版)課件 第7章 時(shí)間序列分析_第1頁
Python數(shù)據(jù)分析與應(yīng)用-從數(shù)據(jù)獲取到可視化(第2版)課件 第7章 時(shí)間序列分析_第2頁
Python數(shù)據(jù)分析與應(yīng)用-從數(shù)據(jù)獲取到可視化(第2版)課件 第7章 時(shí)間序列分析_第3頁
Python數(shù)據(jù)分析與應(yīng)用-從數(shù)據(jù)獲取到可視化(第2版)課件 第7章 時(shí)間序列分析_第4頁
Python數(shù)據(jù)分析與應(yīng)用-從數(shù)據(jù)獲取到可視化(第2版)課件 第7章 時(shí)間序列分析_第5頁
已閱讀5頁,還剩70頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第7章時(shí)間序列分析《Python數(shù)據(jù)分析與應(yīng)用:從數(shù)據(jù)獲取到可視化(第2版)》學(xué)習(xí)目標(biāo)/Target

了解時(shí)間序列,能夠說出時(shí)間序列、時(shí)間戳、時(shí)間差、時(shí)期的概念

掌握時(shí)間序列的基本操作,能夠創(chuàng)建時(shí)間序列并獲取其子集

掌握固定頻率的時(shí)間序列,能夠創(chuàng)建固定頻率的時(shí)間序列學(xué)習(xí)目標(biāo)/Target

掌握時(shí)期的相關(guān)操作,能夠創(chuàng)建帶時(shí)期索引的對象,并轉(zhuǎn)換時(shí)期的頻率

掌握重采樣的方法,能夠通過resample()方法實(shí)現(xiàn)降采樣和升采樣

掌握滑動(dòng)窗口,能夠使用rolling()方法實(shí)現(xiàn)滑動(dòng)窗口章節(jié)概述/Summary在進(jìn)行數(shù)據(jù)分析時(shí),除了前面章節(jié)中介紹的數(shù)值形式的數(shù)據(jù)之外,有時(shí)還需要對時(shí)間序列進(jìn)行分析。pandas庫作為數(shù)據(jù)分析的利器,它提供了一套標(biāo)準(zhǔn)的處理時(shí)間序列的功能,可以幫助用戶非常高效地處理時(shí)間序列。本章將針對時(shí)間序列的相關(guān)內(nèi)容進(jìn)行詳細(xì)地講解。目錄/Contents01時(shí)間序列概述02時(shí)間序列的基本操作03固定頻率的時(shí)間序列04時(shí)間周期與計(jì)算目錄/Contents05重采樣06滑動(dòng)窗口07案例:某城市報(bào)警記錄分析時(shí)間序列概述7.17.1

時(shí)間序列概述了解時(shí)間序列,能夠說出時(shí)間序列、時(shí)間戳、時(shí)間差、時(shí)期的概念學(xué)習(xí)目標(biāo)7.1

時(shí)間序列概述時(shí)間序列是指將同一統(tǒng)計(jì)指標(biāo)的數(shù)值按其發(fā)生的時(shí)間先后順序排列而成的數(shù)列,例如,一天內(nèi)每隔一小時(shí)記錄的溫度、一天內(nèi)股票價(jià)格的走勢等,這些用到的與時(shí)間有關(guān)的數(shù)據(jù)都可以看做時(shí)間序列。※根據(jù)觀察時(shí)間的不同,時(shí)間序列中的時(shí)間可以是年份、季度、月份或其他任何時(shí)間形式。概念7.1

時(shí)間序列概述時(shí)間序列可以有著固定頻率,也就是說數(shù)值是按照一定的規(guī)律定期出現(xiàn)的,比如每天出現(xiàn)一次、每小時(shí)出現(xiàn)一次。時(shí)間序列也可以有著不固定的頻率,也就是說數(shù)值是不定期出現(xiàn)的。特點(diǎn)7.1

時(shí)間序列概述時(shí)間相關(guān)概念帶時(shí)區(qū)的特定的日期時(shí)間,比如2023-1-1015:00:00。時(shí)間戳絕對的持續(xù)時(shí)間,比如1天、3個(gè)小時(shí)、10分鐘等。時(shí)間差由時(shí)間點(diǎn)及其相關(guān)頻率定義的時(shí)間跨度,比如2023年、2023年1月等。時(shí)期7.1

時(shí)間序列概述時(shí)間概念相關(guān)類類說明Timestamp表示時(shí)間戳,封裝了時(shí)間戳相關(guān)的功能Timedelta表示時(shí)間差,封裝了時(shí)間差相關(guān)的功能Period表示時(shí)期,封裝了時(shí)期相關(guān)的功能DatetimeIndex表示時(shí)間戳索引,由一組Timestamp類的對象構(gòu)成TimedeltaIndex表示時(shí)間差索引,由一組Timedelta類的對象構(gòu)成PeriodIndex表示時(shí)期索引,由一組Period類的對象構(gòu)成時(shí)間序列的基本操作7.27.2.1

創(chuàng)建帶時(shí)間戳的時(shí)間序列掌握帶時(shí)間戳?xí)r間序列的創(chuàng)建方式,能夠通過to_datetime()函數(shù)創(chuàng)建時(shí)間戳索引,并基于該索引生成時(shí)間序列學(xué)習(xí)目標(biāo)7.2.1

創(chuàng)建帶時(shí)間戳的時(shí)間序列根據(jù)時(shí)間戳索引創(chuàng)建如果要?jiǎng)?chuàng)建基于時(shí)間戳的時(shí)間序列,可以先使用to_datetime()函數(shù)創(chuàng)建一個(gè)DatetimeIndex類的對象,該對象中包含一組時(shí)間戳,再將該對象作為Series類或DataFrame類對象的索引。importpandasaspd#創(chuàng)建DatetimeIndex類的對象date_index=pd.to_datetime(['20230110','20230115','20230118'])#創(chuàng)建Series類的對象并指定索引date_ser=pd.Series([11,22,33],index=date_index)date_ser7.2.1

創(chuàng)建帶時(shí)間戳的時(shí)間序列根據(jù)日期列表創(chuàng)建還可以在創(chuàng)建Series類的對象時(shí)將包含多個(gè)datetime對象的列表傳給index參數(shù),這樣也會(huì)生成一個(gè)基于時(shí)間戳的時(shí)間序列。fromdatetimeimportdatetimeimportpandasaspddate_list=[datetime(2023,1,10),datetime(2023,1,15),

datetime(2023,1,18)]time_ser=pd.Series([11,22,33],index=date_list)time_ser7.2.1

創(chuàng)建帶時(shí)間戳的時(shí)間序列根據(jù)日期列表創(chuàng)建還可以在創(chuàng)建DataFrame類的對象時(shí),通過給index參數(shù)傳入DatetimeIndex類的對象或者包含datetime對象的列表,這樣也會(huì)生成一個(gè)基于時(shí)間戳的時(shí)間序列。data_demo=[[11,22,33],[44,55,66],

[77,88,99],[12,23,34]]date_list=[datetime(2023,1,23),datetime(2023,2,15),

datetime(2023,5,22),datetime(2023,3,30)]time_df=pd.DataFrame(data_demo,index=date_list)time_df7.2.2

獲取時(shí)間序列子集掌握獲取時(shí)間序列子集的方式,能夠通過多種方式獲取時(shí)間序列的子集學(xué)習(xí)目標(biāo)7.2.2

獲取時(shí)間序列子集通過位置索引獲取在pandas中,想要獲取時(shí)間序列的子集,最簡單的方式就是直接通過位置索引獲取。importpandasaspdimportnumpyasnpdate_list=['2020/05/30','2022/02/01','2020.6.1',

'2021.4.1','2022.6.1','2023.1.23']date_index=pd.to_datetime(date_list)date_ser=pd.Series(np.arange(6),index=date_index)date_ser[3]7.2.2

獲取時(shí)間序列子集通過日期對象獲取除了使用位置索引之外,還可以使用datetime構(gòu)建的日期對象獲取其對應(yīng)的數(shù)據(jù)。fromdatetimeimportdatetime#通過datetime對象獲取時(shí)間序列的數(shù)據(jù)date_time=datetime(2020,6,1)date_ser[date_time]7.2.2

獲取時(shí)間序列子集通過日期字符串獲取還可以使用一個(gè)日期字符串獲取時(shí)間序列的數(shù)據(jù),日期字符串的格式必須能被Python解釋器解析,包括“年月日”“年-月-日”“年/月/日”“月/日/年”等。date_ser['20200530']date_ser['2020-05-30']date_ser['2020/05/30']date_ser['5/30/2020']7.2.2

獲取時(shí)間序列子集通過年或月獲取如果只想要獲取某年或某月的數(shù)據(jù),則可以通過“對象[‘年份’]

”或“對象['月份']

”實(shí)現(xiàn)。date_ser['2020']7.2.2

獲取時(shí)間序列子集通過truncate()方法獲取還可以通過truncate()方法截取時(shí)間序列中的一部分?jǐn)?shù)據(jù)。sorted_ser=date_ser.sort_index()sorted_ser.truncate(before='2022-1-1')sorted_ser.truncate(after='2020-6-1')固定頻率的時(shí)間序列7.37.3.1

創(chuàng)建固定頻率的時(shí)間序列掌握固定頻率時(shí)間序列的創(chuàng)建方式,能夠通過date_range()函數(shù)創(chuàng)建時(shí)間戳索引,并基于該索引生成時(shí)間序列學(xué)習(xí)目標(biāo)7.3.1

創(chuàng)建固定頻率的時(shí)間序列語法格式pandas中提供了一個(gè)date_range()函數(shù),date_range()函數(shù)用于生成一組固定頻率的時(shí)間戳,并返回一個(gè)DatetimeIndex類的對象。date_range(start=None,

end=None,

periods=None,

freq=None,

tz=None,

normalize=False,

name=None,

closed=NoDefault.no_default,

inclusive=None,

**kwargs)start:表示起始日期時(shí)間。end:表示終止日期時(shí)間。periods:表示生成時(shí)間戳的個(gè)數(shù)。若該參數(shù)的值為None,則start與end參數(shù)不能為None。freq:用于指定計(jì)時(shí)單位的字符串,默認(rèn)值為‘D’,表示以日歷日為單位。當(dāng)然,字符串中可以包含倍數(shù)。7.3.1

創(chuàng)建固定頻率的時(shí)間序列語法格式pandas中提供了一個(gè)date_range()函數(shù),date_range()函數(shù)用于生成一組固定頻率的時(shí)間戳,并返回一個(gè)DatetimeIndex類的對象。date_range(start=None,

end=None,

periods=None,

freq=None,

tz=None,

normalize=False,

name=None,

closed=NoDefault.no_default,

inclusive=None,

**kwargs)tz:表示時(shí)區(qū)的名稱。normalize:表示在生成日期范圍之前是否將start和end標(biāo)準(zhǔn)化為當(dāng)日的午夜0點(diǎn),默認(rèn)值為False。closed:表示start和end是否包含在區(qū)間內(nèi),該參數(shù)支持3種取值,分別是left、right、None,其中l(wèi)eft表示左側(cè)包含在區(qū)間內(nèi),right表示右側(cè)包含在區(qū)間內(nèi);None表示左側(cè)和右側(cè)同時(shí)包含在區(qū)間內(nèi)。7.3.1

創(chuàng)建固定頻率的時(shí)間序列示例1.

創(chuàng)建DatetimeIndex類對象,指定起始日期和終止日期importpandasaspddate_ran=pd.date_range('2023/01/01','2023/01/10')date_ran7.3.1

創(chuàng)建固定頻率的時(shí)間序列示例2.

創(chuàng)建DatetimeIndex類對象,指定日期和個(gè)數(shù)importpandasaspddate_ran=pd.date_range(start='2023/01/01',periods=5)date_randate_ran=pd.date_range(end='2023/01/10',periods=5)date_ran7.3.1

創(chuàng)建固定頻率的時(shí)間序列示例3.

創(chuàng)建DatetimeIndex類對象,指定頻率dates_index=pd.date_range(start='2023-01-01',

periods=5,freq='5D')

dates_index如果希望時(shí)間序列中的時(shí)間戳每隔五天出現(xiàn)一次,則可以在創(chuàng)建DatetimeIndex類的對象時(shí)給freq參數(shù)傳入值5D。7.3.1

創(chuàng)建固定頻率的時(shí)間序列示例4.

創(chuàng)建DatetimeIndex類對象,帶有時(shí)間信息dates_index=pd.date_range(start='2023-01-0112:30:11',

periods=5,freq='5D')dates_index如果起始日期時(shí)間或終止日期時(shí)間帶有與時(shí)間相關(guān)的信息,那么生成的時(shí)間戳里面會(huì)保留時(shí)間信息。7.3.1

創(chuàng)建固定頻率的時(shí)間序列示例5.

創(chuàng)建DatetimeIndex類對象,標(biāo)準(zhǔn)化時(shí)間信息pd.date_range(start='2023/1/112:30:11',periods=5,tz='Asia/Hong_Kong')pd.date_range(start='2023/1/112:30:11',periods=5,tz='Asia/Hong_Kong',normalize=True)一天應(yīng)該是從零點(diǎn)開始的,要想產(chǎn)生一組被標(biāo)準(zhǔn)化到當(dāng)天午夜0點(diǎn)的時(shí)間戳,可以在創(chuàng)建DatetimeIndex類的對象時(shí)將normalize參數(shù)設(shè)置為True。7.3.1

創(chuàng)建固定頻率的時(shí)間序列示例6.

創(chuàng)建Series類對象,生成時(shí)間序列date_ser=pd.Series([12,56,89,99,31],index=dates_index)date_ser我們可以創(chuàng)建Series類的對象,并將該對象的索引指定為前面創(chuàng)建的DatetimeIndex類的對象,這樣便會(huì)生成一個(gè)固定頻率的時(shí)間序列。7.3.2

時(shí)間序列的頻率與偏移量掌握頻率與偏移量,能夠通過多種方式構(gòu)建頻率與偏移量,以設(shè)置時(shí)間序列的頻率學(xué)習(xí)目標(biāo)7.3.2

時(shí)間序列的頻率與偏移量在pandas中,頻率是由一個(gè)基礎(chǔ)頻率和倍數(shù)組成的,比如“5D”,其中“D”屬于基礎(chǔ)頻率。概念7.3.2

時(shí)間序列的頻率與偏移量基礎(chǔ)頻率基礎(chǔ)頻率說明D每日歷日B每工作日H每小時(shí)T或min每分S每秒L或ms每毫秒U(xiǎn)每微秒7.3.2

時(shí)間序列的頻率與偏移量基礎(chǔ)頻率基礎(chǔ)頻率說明M每月最后一個(gè)日歷日BM每月最后一個(gè)工作日MS每月第一個(gè)日歷日BMS每月第一個(gè)工作日W-MON、W-TUE…從指定的星期幾(MON、TUE、WED、THU、FRI、SAT、SUN)開始算起,每周幾WOM-1MON、WOM-2MON…每月第一周、第二周、第三周或第四周的星期幾Q-JAN、Q-FEB…對于以指定月份(JAN、FEB、MAR、APR、MAY、JUN、JUL、AUG、SEP、OCT、NOV、DEC)結(jié)束的年度,每季度最后一月的最后一個(gè)日歷日7.3.2

時(shí)間序列的頻率與偏移量基礎(chǔ)頻率基礎(chǔ)頻率說明BQ-JAN、BQ-FEB…對于以指定月份結(jié)束的年度,每季度最后一月的最后一個(gè)工作日QS-JAN、QS-FEB…對于以指定月份結(jié)束的年度,每季度最后一月的最后一個(gè)日歷日BQS-JAN、BQS-FEB…對于以指定月份結(jié)束的年度,每季度最后一月的第一個(gè)工作日A-JAN、A-FEB…每年指定月份的最后一個(gè)日歷日BA-JAN、BA-FEB…每年指定月份的最后一個(gè)工作日AS-JAN、AS-FEB…每年指定月份的第一個(gè)日歷日BAS-JAN、BAS-FEB…每年指定月份的第一個(gè)工作日7.3.2

時(shí)間序列的頻率與偏移量偏移量frompandas.tseries.offsetsimport*DateOffset(days=14,hours=10)pd.tseries.offsets模塊提供了一個(gè)被稱為日期偏移量的DateOffset類的對象,通過該類的構(gòu)造方法可以創(chuàng)建一個(gè)DateOffset類的對象。生成一個(gè)14天10小時(shí)的偏移量7.3.2

時(shí)間序列的頻率與偏移量偏移量Week(2)+Hour(10)還可以使用offsets模塊中提供的偏移量類型進(jìn)行創(chuàng)建。例如,14天10小時(shí)可以換算為兩周零十個(gè)小時(shí),其中“周”使用Week類型表示,“小時(shí)”使用Hour類型表示,這兩個(gè)類型實(shí)例化對象使用加號連接,如此便可以生成4天10小時(shí)的偏移量。創(chuàng)建了一個(gè)Timedelta類對象,該對象用來表示持續(xù)時(shí)間7.3.2

時(shí)間序列的頻率與偏移量偏移量date_offset=Week(2)+Hour(10)pd.date_range('2023/1/1','2023/1/31',freq=date_offset)前面生成的日期偏移量都可以傳遞給date_range()函數(shù)的freq參數(shù),此時(shí)會(huì)根據(jù)日期偏移量生成一組時(shí)間戳。7.3.3

時(shí)間序列的移動(dòng)掌握時(shí)間序列移動(dòng)操作,能夠通過shift()方法實(shí)現(xiàn)時(shí)間序列的移動(dòng)操作學(xué)習(xí)目標(biāo)7.3.3

時(shí)間序列的移動(dòng)語法格式移動(dòng)(shifting)是指沿著時(shí)間軸方向?qū)?shù)據(jù)進(jìn)行前移或后移。pandas對象中提供了一個(gè)shift()方法,該方法用于前移或后移數(shù)據(jù),但索引保持不變。shift(periods=1,

freq=None,

axis=0)periods:表示移動(dòng)的幅度,該參數(shù)的取值可以是正數(shù)或負(fù)數(shù),正數(shù)表示數(shù)據(jù)整體向后移動(dòng),負(fù)數(shù)表示數(shù)據(jù)整體向前移動(dòng)。默認(rèn)值是1,代表數(shù)據(jù)整體向后移動(dòng)一次。freq:表示頻率。如果明確指定了這個(gè)參數(shù),那么會(huì)按照參數(shù)的值移動(dòng)時(shí)間戳索引,而數(shù)據(jù)值沒有發(fā)生變化。7.3.3

時(shí)間序列的移動(dòng)移動(dòng)示意圖位于開頭一行的數(shù)據(jù)被丟棄,位于末尾一行的數(shù)據(jù)變成NaN位于末尾一行的數(shù)據(jù)被丟棄,位于開頭一行的數(shù)據(jù)變成NaN時(shí)間周期與計(jì)算7.47.4.1

創(chuàng)建帶時(shí)期索引的對象掌握帶時(shí)期索引對象的創(chuàng)建方式,能夠通過period_range()函數(shù)創(chuàng)建時(shí)期索引,并基于該索引生成時(shí)間序列學(xué)習(xí)目標(biāo)7.4.1

創(chuàng)建帶時(shí)期索引的對象創(chuàng)建Period類對象在pandas中,Period類表示一個(gè)標(biāo)準(zhǔn)的時(shí)期。創(chuàng)建Period對象的方式比較簡單,只需要在Period類的構(gòu)造方法中以字符串或整數(shù)的形式傳入一個(gè)日期即可。pd.Period(2023)pd.Period('2023/6')從2023-01-01到2023-12-31的時(shí)期從2023-06-01到2023-06-30的時(shí)期7.4.1

創(chuàng)建帶時(shí)期索引的對象Period對象的數(shù)學(xué)運(yùn)算Period類的對象能夠參與數(shù)學(xué)運(yùn)算。如果Period類的對象加上或者減去一個(gè)整數(shù),則會(huì)根據(jù)具體的時(shí)間單位進(jìn)行位移操作。period+1period-5Period('2023-07','M')Period('2023-01','M')7.4.1

創(chuàng)建帶時(shí)期索引的對象Period對象的數(shù)學(xué)運(yùn)算如果頻率相同的兩個(gè)Period類的對象進(jìn)行數(shù)學(xué)運(yùn)算,那么它們計(jì)算后的結(jié)果為相差的單位數(shù)量。other_period=pd.Period(202301,freq='M')period-other_period<5*MonthEnds>7.4.1

創(chuàng)建帶時(shí)期索引的對象創(chuàng)建PeriodIndex類對象方式一:通過period_range()函數(shù)創(chuàng)建period_index=pd.period_range('2023.1.8',

'2023.5.31',freq='M')period_index方式二:通過PeriodIndex類的構(gòu)造方法創(chuàng)建str_list=['2021','2022','2023']pd.PeriodIndex(str_list,freq='A-DEC')7.4.1

創(chuàng)建帶時(shí)期索引的對象根據(jù)PeriodIndex創(chuàng)建對象PeriodIndex類的對象也可以作為Series類或DataFrame類對象的索引。period_ser=pd.Series(np.arange(5),period_index)period_ser7.4.2

時(shí)期的頻率轉(zhuǎn)換掌握時(shí)期頻率的轉(zhuǎn)換方式,能夠通過asfreq()方法實(shí)現(xiàn)時(shí)期的頻率轉(zhuǎn)換操作學(xué)習(xí)目標(biāo)7.4.2

時(shí)期的頻率轉(zhuǎn)換語法格式pandas的Period類中提供了一個(gè)asfreq()方法,用于轉(zhuǎn)換時(shí)期的頻率,比如某年轉(zhuǎn)換為某月。asfreq(freq,method=None,how=None,normalize=False,fill_value=None

)freq:表示所需頻率,可以取值為DateOffset類的對象或字符串。how:表示時(shí)期的開始或結(jié)束,可以取值為start或end,默認(rèn)值為end。重采樣7.57.5

重采樣重采樣是指將時(shí)間序列從一個(gè)頻率轉(zhuǎn)換到另一個(gè)頻率的處理過程。如果是將高頻率數(shù)據(jù)聚合到低頻率,則稱為降采樣(downsamling);如果將低頻率數(shù)據(jù)轉(zhuǎn)換到高頻率數(shù)據(jù),則稱為升采樣(upsampling)?!⒉皇撬械闹夭蓸佣紩?huì)劃分到降采樣與升采樣兩大類中,比如,將采集數(shù)據(jù)的頻率由每周一轉(zhuǎn)換為每周日,類似于這樣的轉(zhuǎn)換既不屬于降采樣,也不屬于升采樣。概念7.5.1

重采樣方法掌握重采樣方法的使用,能夠靈活通過resample()方法實(shí)現(xiàn)重采樣的操作學(xué)習(xí)目標(biāo)7.5.1

重采樣方法語法格式pandas中的resample()是一個(gè)對常規(guī)時(shí)間序列數(shù)據(jù)重新采樣和頻率轉(zhuǎn)換的便捷的方法,可以對原樣本重新處理。resample(rule,

axis=0,

closed=None,

label=None,

convention='start',

kind=None,

loffset=None,

base=None,

on=None,

level=None,

origin='start_day',

offset=None)rule:表示重采樣頻率的字符串或DateOffset類對象。closed:用于控制時(shí)間間隔范圍的閉合性,即控制時(shí)間戳是否包含在重采樣時(shí)間間隔內(nèi)。該參數(shù)支持的取值有l(wèi)eft和right,默認(rèn)值為left,表示重采樣時(shí)間間隔的左端點(diǎn)被包括在內(nèi),右端點(diǎn)不包括;若該參數(shù)設(shè)為right,則表示重采樣時(shí)間間隔的右端點(diǎn)被包括在內(nèi),左端點(diǎn)不包括。7.5.1

重采樣方法語法格式pandas中的resample()是一個(gè)對常規(guī)時(shí)間序列數(shù)據(jù)重新采樣和頻率轉(zhuǎn)換的便捷的方法,可以對原樣本重新處理。resample(rule,

axis=0,

closed=None,

label=None,

convention='start',

kind=None,

loffset=None,

base=None,

on=None,

level=None,

origin='start_day',

offset=None)label:表示降采樣時(shí)設(shè)置聚合值的標(biāo)簽。convention:重采樣日期時(shí),低頻轉(zhuǎn)高頻采用的約定,可以取值為start或end,默認(rèn)為start。7.5.2

降采樣掌握降采樣操作,能夠通過resample()方法實(shí)現(xiàn)降采樣操作學(xué)習(xí)目標(biāo)7.5.2

降采樣降采樣時(shí)間顆粒會(huì)變大。降采樣時(shí)數(shù)據(jù)量是減少的。特點(diǎn)※為了避免有些時(shí)間戳對應(yīng)的數(shù)據(jù)閑置,可以利用統(tǒng)計(jì)方法聚合數(shù)據(jù)。7.5.2

降采樣date_index=pd.date_range('2023/02/01',periods=30)shares_data=np.random.rand(30)time_ser=pd.Series(shares_data,index=date_index)time_ser.resample('7D').ohlc()在金融領(lǐng)域中,股票數(shù)據(jù)比較常見的是OHLC重采樣,包括開盤價(jià)(open)、最高價(jià)(high)、最低價(jià)(low)和收盤價(jià)(close)。為此,pandas中專門提供了一個(gè)ohlc()方法,該方法用于實(shí)現(xiàn)OHLC重采樣的操作。OHLC重采樣7.5.2

降采樣time_ser.groupby(lambdax:x.week).mean()重采樣就相當(dāng)于另外一種形式的分組操作,它會(huì)按照日期將時(shí)間序列進(jìn)行分組,之后對每個(gè)分組應(yīng)用聚合方法得出一個(gè)結(jié)果,同樣實(shí)現(xiàn)了對時(shí)間序列數(shù)據(jù)降采樣的效果。按日期分組7.5.3

升采樣掌握升采樣操作,能夠通過resample()方法實(shí)現(xiàn)升采樣操作學(xué)習(xí)目標(biāo)7.5.3

升采樣升采樣時(shí)間顆粒是變小的。升采樣數(shù)據(jù)量會(huì)增多,這可能導(dǎo)致部分時(shí)間戳沒有相應(yīng)的數(shù)據(jù)。特點(diǎn)7.5.3

升采樣方法一:通過ffill(limit)或bfill(limit)方法取缺失值前面或后面的值填充,limit可以限制填充的個(gè)數(shù)。方法二:通過fillna(‘ffill’)或fillna(‘bfill’)填充缺失值,其中傳入ffill表示用缺失值前面的值填充,傳入bfi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論