pandas中的resample,重新取樣,是對原樣本重新處理的乙個方法,是乙個對常規時間序列資料重新取樣和頻率轉換的便捷的方法。
降取樣:高頻資料到低頻資料
公升取樣:低頻資料到高頻資料
主要函式:resample()(pandas物件都會有這個方法)
引數說明
freq
表示重取樣頻率,例如『m』、『5min』,second(15)
how=』mean』
用於產生聚合值的函式名或陣列函式,例如『mean』、『ohlc』、np.max等,預設是『mean』,其他常用的值由:『first』、『last』、『median』、『max』、『min』
axis=0
預設是縱軸,橫軸設定axis=1
fill_method = none
公升取樣時如何插值,比如『ffill』、『bfill』等
closed = 『right』
在降取樣時,各時間段的哪一段是閉合的,『right』或『left』,預設『right』
label= 『right』
在降取樣時,如何設定聚合值的標籤,例如,9:30-9:35會被標記成9:30還是9:35,預設9:35
loffset = none
面元標籤的時間校正值,比如『-1s』或second(-1)用於將聚合標籤調早1秒
limit=none
在向前或向後填充時,允許填充的最大時期數
kind = none
聚合到時期(『period』)或時間戳(『timestamp』),預設聚合到時間序列的索引型別
convention = none
當重取樣時期時,將低頻率轉換到高頻率所採用的約定(start或end)。預設『end』
首先建立乙個series,取樣頻率為一分鐘。
>>> 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
>>> series.resample('3t').sum()降低取樣頻率為三分鐘,但是每個標籤使用right來代替left。請注意,bucket中值的用作標籤。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
>>> series.resample('3t', label='right').sum()降低取樣頻率為三分鐘,但是關閉right區間。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
>>> series.resample('3t', label='right', closed='right').sum()增加取樣頻率到30秒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
>>> series.resample('30s').asfreq()[0:5] #select first 5 rows增加取樣頻率到30s,使用pad方法填充nan值。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
>>> series.resample('30s').pad()[0:5]增加取樣頻率到30s,使用bfill方法填充nan值。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
>>> 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
>>> def custom_resampler(array_like):2000-01-01 00:00:00 8... return np.sum(array_like)+5
2000-01-01 00:03:00 17
2000-01-01 00:06:00 26
freq: 3t, dtype: int64
Pandas中resample方法詳解
pandas中的resample,重新取樣,是對原樣本重新處理的乙個方法,是乙個對常規時間序列資料重新取樣和頻率轉換的便捷的方法。方法的格式是 dataframe.resample rule how none axis 0 fill method none closed none label non...
Pandas中resample方法詳解
pandas中的resample,重新取樣,是對原樣本重新處理的乙個方法,是乙個對常規時間序列資料重新取樣和頻率轉換的便捷的方法。方法的格式是 dataframe.resample rule,how none,axis 0,fill method none,closed none,label non...
Pandas中的resample,重新取樣
pandas中的resample,重新取樣,是對原樣本重新處理的乙個方法,是乙個對常規時間序列資料重新取樣和頻率轉換的便捷的方法。方法的格式是 dataframe.resample rule,how none,axis 0,fill method none,closed none,label non...