python中resample函數(shù)實(shí)現(xiàn)重采樣和降采樣代碼
函數(shù)原型
resample(self, rule, how=None, axis=0, fill_method=None, closed=None, label=None, convention=‘start', kind=None, loffset=None, limit=None, base=0, on=None, level=None)
比較關(guān)鍵的是rule,closed,label下面會(huì)隨著兩個(gè)用法說(shuō)明
降采樣
對(duì)時(shí)間數(shù)據(jù)細(xì)粒度增大,可以把每天的數(shù)據(jù)聚合成一周,可以求和或者均值的方式進(jìn)行聚合
下面給出列子
times=pd.date_range('20180101',periods=30)
ts=pd.Series(np.arange(1,31),index=times)
ts
2018-01-01 1
2018-01-02 2
2018-01-03 3
2018-01-04 4
2018-01-05 5
2018-01-06 6
2018-01-07 7
2018-01-08 8
2018-01-09 9
2018-01-10 10
2018-01-11 11
2018-01-12 12
2018-01-13 13
2018-01-14 14
2018-01-15 15
2018-01-16 16
2018-01-17 17
2018-01-18 18
2018-01-19 19
2018-01-20 20
2018-01-21 21
2018-01-22 22
2018-01-23 23
2018-01-24 24
2018-01-25 25
2018-01-26 26
2018-01-27 27
2018-01-28 28
2018-01-29 29
2018-01-30 30
Freq: D, dtype: int32
ts_7d=ts.resample('7D').sum()
ts_7d
2018-01-01 28
2018-01-08 77
2018-01-15 126
2018-01-22 175
2018-01-29 59
dtype: int32
我們看看上面代碼,就是先給出一個(gè)1-30號(hào)的series,l然后聚合成左閉右開(kāi)的5個(gè)區(qū)間[1,8),[8,15),[15,22),[22-29),[29-5(下個(gè)月)),每個(gè)區(qū)間的值就為單個(gè)區(qū)間值之和。由于29號(hào)往后只有29號(hào)和30號(hào)有值,所以只有兩個(gè)值
下面我們看看label和closed的功能
ts_7d=ts.resample('7D',closed='right',label='left').sum()
ts_7d
Out[14]:
2017-12-25 1
2018-01-01 35
2018-01-08 84
2018-01-15 133
2018-01-22 182
2018-01-29 30
上面的代碼,將closed改為了right,區(qū)間就變成了左開(kāi)右閉,那么如果從區(qū)間還是(1,8],1就取不到,所以往前取,就是(25,1],(1,8],(8,15],(15,22],(22,29],(29,5]這6個(gè)區(qū)間
ts_7d=ts.resample('7D',closed='right',label='right').sum()
ts_7d
Out[15]:
2018-01-01 1
2018-01-08 35
2018-01-15 84
2018-01-22 133
2018-01-29 182
2018-02-05 30
dtype: int32
上面的代碼就可以看出label=right就是指label等于右區(qū)間的值,如果label=left就是指label等于左區(qū)間的值
重采樣
降低時(shí)間的細(xì)粒度,對(duì)于重采樣,主要是涉及到值的填充。有下面的三種填充方法
不填充。那么對(duì)應(yīng)無(wú)值的地方,用NaN代替。對(duì)應(yīng)的方法是asfreq。
用前值填充。用前面的值填充無(wú)值的地方。對(duì)應(yīng)的方法是ffill或者pad。
用后值填充。對(duì)應(yīng)的方法是bfill,b代表back。
下面給出代碼看一下
ts_7h_asfreq = ts.resample('7H').asfreq()
print(ts_7h_asfreq)
ts_7h_ffill = ts.resample('7H').ffill()
print(ts_7h_ffill)
ts_7h_bfill = ts.resample('7H').bfill()
ts_7h_bfill
2018-01-01 00:00:00 1.0
2018-01-01 07:00:00 NaN
2018-01-01 14:00:00 NaN
2018-01-01 21:00:00 NaN
Freq: 7H, dtype: float64
2018-01-01 00:00:00 1
2018-01-01 07:00:00 1
2018-01-01 14:00:00 1
2018-01-01 21:00:00 1
Freq: 7H, dtype: int32
Out[24]:
2018-01-01 00:00:00 1
2018-01-01 07:00:00 2
2018-01-01 14:00:00 2
2018-01-01 21:00:00 2
Freq: 7H, dtype: int32
總結(jié)
重采樣和降采樣一般用在時(shí)間序列里面,合理的使用降低時(shí)間維度或者降低時(shí)間細(xì)粒度多可以成為好的特征。
以上這篇python中resample函數(shù)實(shí)現(xiàn)重采樣和降采樣代碼就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)合并同一個(gè)文件夾下所有PDF文件的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)合并同一個(gè)文件夾下所有PDF文件的方法,涉及Python針對(duì)pdf文件的讀取、判斷、解密、寫入合并等相關(guān)操作技巧,需要的朋友可以參考下2018-04-04
python opencv檢測(cè)目標(biāo)顏色的實(shí)例講解
下面小編就為大家分享一篇python opencv檢測(cè)目標(biāo)顏色的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
python+flask實(shí)現(xiàn)API的方法
這篇文章主要為大家詳細(xì)介紹了python+flask實(shí)現(xiàn)API的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11
10個(gè)頂級(jí)Python實(shí)用庫(kù)推薦
這篇文章主要推薦了10個(gè)頂級(jí)Python實(shí)用庫(kù),幫助大家更好的理解和學(xué)習(xí)實(shí)用python,感興趣的朋友可以了解下2021-03-03
Python基礎(chǔ)之字典常見(jiàn)操作經(jīng)典實(shí)例詳解
這篇文章主要介紹了Python基礎(chǔ)之字典常見(jiàn)操作,結(jié)合實(shí)例形式詳細(xì)分析了Python基本功能、創(chuàng)建、內(nèi)置函數(shù)與相關(guān)使用技巧,需要的朋友可以參考下2020-02-02
Python基于datetime或time模塊分別獲取當(dāng)前時(shí)間戳的方法實(shí)例
今天小編就為大家分享一篇關(guān)于Python基于datetime或time模塊分別獲取當(dāng)前時(shí)間戳的方法實(shí)例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02
Python分支結(jié)構(gòu)(switch)操作簡(jiǎn)介
這篇文章主要介紹了Python分支結(jié)構(gòu)(switch)操作簡(jiǎn)介,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
淺析Python與Mongodb數(shù)據(jù)庫(kù)之間的操作方法
這篇文章主要介紹了Python與Mongodb數(shù)據(jù)庫(kù)之間的操作,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
Django-Model數(shù)據(jù)庫(kù)操作(增刪改查、連表結(jié)構(gòu))詳解
這篇文章主要介紹了Django-Model數(shù)據(jù)庫(kù)操作(增刪改查、連表結(jié)構(gòu))詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07

