Pandas中的resample,重新采樣,是對(duì)原樣本重新處理的一個(gè)方法,是一個(gè)對(duì)常規(guī)時(shí)間序列數(shù)據(jù)重新采樣和頻率轉(zhuǎn)換的便捷的方法。
方法的格式是:文章源自四五設(shè)計(jì)網(wǎng)-http://www.133122.cn/39152.html
1 | DataFrame.resample(rule, how = None , axis = 0 , fill_method = None , closed = None , label = None , convention = 'start' ,kind = None , loffset = None , limit = None , base = 0 ) |
參數(shù)詳解是:文章源自四五設(shè)計(jì)網(wǎng)-http://www.133122.cn/39152.html
文章源自四五設(shè)計(jì)網(wǎng)-http://www.133122.cn/39152.html
參數(shù) | 說(shuō)明 |
---|---|
freq | 表示重采樣頻率,例如‘M'、‘5min',Second(15) |
how='mean' | 用于產(chǎn)生聚合值的函數(shù)名或數(shù)組函數(shù),例如‘mean'、‘ohlc'、np.max等,默認(rèn)是‘mean',其他常用的值由:‘first'、‘last'、‘median'、‘max'、‘min' |
axis=0 | 默認(rèn)是縱軸,橫軸設(shè)置axis=1 |
fill_method = None | 升采樣時(shí)如何插值,比如‘ffill'、‘bfill'等 |
closed = ‘right' | 在降采樣時(shí),各時(shí)間段的哪一段是閉合的,‘right'或‘left',默認(rèn)‘right' |
label= ‘right' | 在降采樣時(shí),如何設(shè)置聚合值的標(biāo)簽,例如,9:30-9:35會(huì)被標(biāo)記成9:30還是9:35,默認(rèn)9:35 |
loffset = None | 面元標(biāo)簽的時(shí)間校正值,比如‘-1s'或Second(-1)用于將聚合標(biāo)簽調(diào)早1秒 |
limit=None | 在向前或向后填充時(shí),允許填充的最大時(shí)期數(shù) |
kind = None | 聚合到時(shí)期(‘period')或時(shí)間戳(‘timestamp'),默認(rèn)聚合到時(shí)間序列的索引類型 |
convention = None | 當(dāng)重采樣時(shí)期時(shí),將低頻率轉(zhuǎn)換到高頻率所采用的約定(start或end)。默認(rèn)‘end' |
文章源自四五設(shè)計(jì)網(wǎng)-http://www.133122.cn/39152.html
首先創(chuàng)建一個(gè)Series,采樣頻率為一分鐘。文章源自四五設(shè)計(jì)網(wǎng)-http://www.133122.cn/39152.html
1 2 3 4 5 6 7 8 9 10 11 12 13 | >>> index = pd.date_range( '1/1/2000' , periods = 9 , freq = 'T' ) >>> series = pd.Series( range ( 9 ), index = index) >>> series 2000 - 01 - 01 00 : 00 : 00 ? 0 2000 - 01 - 01 00 : 01 : 00 ? 1 2000 - 01 - 01 00 : 02 : 00 ? 2 2000 - 01 - 01 00 : 03 : 00 ? 3 2000 - 01 - 01 00 : 04 : 00 ? 4 2000 - 01 - 01 00 : 05 : 00 ? 5 2000 - 01 - 01 00 : 06 : 00 ? 6 2000 - 01 - 01 00 : 07 : 00 ? 7 2000 - 01 - 01 00 : 08 : 00 ? 8 Freq: T, dtype: int64 |
降低采樣頻率為三分鐘文章源自四五設(shè)計(jì)網(wǎng)-http://www.133122.cn/39152.html
1 2 3 4 5 | >>> series.resample( '3T' ). sum () 2000 - 01 - 01 00 : 00 : 00 ?? 3 2000 - 01 - 01 00 : 03 : 00 ? 12 2000 - 01 - 01 00 : 06 : 00 ? 21 Freq: 3T , dtype: int64 |
降低采樣頻率為三分鐘,但是每個(gè)標(biāo)簽使用right來(lái)代替left。請(qǐng)注意,bucket中值的用作標(biāo)簽。文章源自四五設(shè)計(jì)網(wǎng)-http://www.133122.cn/39152.html
1 2 3 4 5 | >>> series.resample( '3T' , label = 'right' ). sum () 2000 - 01 - 01 00 : 03 : 00 ?? 3 2000 - 01 - 01 00 : 06 : 00 ? 12 2000 - 01 - 01 00 : 09 : 00 ? 21 Freq: 3T , dtype: int64 |
降低采樣頻率為三分鐘,但是關(guān)閉right區(qū)間。文章源自四五設(shè)計(jì)網(wǎng)-http://www.133122.cn/39152.html
1 2 3 4 5 6 | >>> series.resample( '3T' , label = 'right' , closed = 'right' ). sum () 2000 - 01 - 01 00 : 00 : 00 ?? 0 2000 - 01 - 01 00 : 03 : 00 ?? 6 2000 - 01 - 01 00 : 06 : 00 ? 15 2000 - 01 - 01 00 : 09 : 00 ? 15 Freq: 3T , dtype: int64 |
增加采樣頻率到30秒文章源自四五設(shè)計(jì)網(wǎng)-http://www.133122.cn/39152.html
1 2 3 4 5 6 7 | >>> series.resample( '30S' ).asfreq()[ 0 : 5 ] #select first 5 rows 2000 - 01 - 01 00 : 00 : 00 ?? 0 2000 - 01 - 01 00 : 00 : 30 ? NaN 2000 - 01 - 01 00 : 01 : 00 ?? 1 2000 - 01 - 01 00 : 01 : 30 ? NaN 2000 - 01 - 01 00 : 02 : 00 ?? 2 Freq: 30S , dtype: float64 |
增加采樣頻率到30S,使用pad方法填充nan值。文章源自四五設(shè)計(jì)網(wǎng)-http://www.133122.cn/39152.html
1 2 3 4 5 6 7 | >>> series.resample( '30S' ).pad()[ 0 : 5 ] 2000 - 01 - 01 00 : 00 : 00 ? 0 2000 - 01 - 01 00 : 00 : 30 ? 0 2000 - 01 - 01 00 : 01 : 00 ? 1 2000 - 01 - 01 00 : 01 : 30 ? 1 2000 - 01 - 01 00 : 02 : 00 ? 2 Freq: 30S , dtype: int64 |
增加采樣頻率到30S,使用bfill方法填充nan值。
1 2 3 4 5 6 7 | >>> series.resample( '30S' ).bfill()[ 0 : 5 ] 2000 - 01 - 01 00 : 00 : 00 ? 0 2000 - 01 - 01 00 : 00 : 30 ? 1 2000 - 01 - 01 00 : 01 : 00 ? 1 2000 - 01 - 01 00 : 01 : 30 ? 2 2000 - 01 - 01 00 : 02 : 00 ? 2 Freq: 30S , dtype: int64 |
通過(guò)apply運(yùn)行一個(gè)自定義函數(shù)
1 2 3 4 5 6 7 | >>> def custom_resampler(array_like): ...?? return np. sum (array_like) + 5 >>> series.resample( '3T' ). apply (custom_resampler) 2000 - 01 - 01 00 : 00 : 00 ?? 8 2000 - 01 - 01 00 : 03 : 00 ? 17 2000 - 01 - 01 00 : 06 : 00 ? 26 Freq: 3T , dtype: int64 |
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。


評(píng)論