Pandas中resample方法詳解

2021-07-22 02:07:46 字數 3630 閱讀 2182

pandas中的resample,重新取樣,是對原樣本重新處理的乙個方法,是乙個對常規時間序列資料重新取樣和頻率轉換的便捷的方法。

方法的格式是:

dataframe.

resample

(rule

, how=none

, axis=0

, fill_method=none

, closed=none

, label=none

, convention='start'

,kind

=none

, loffset=none

, limit=none

, base=0)

引數詳解是:

parameters:

rule : string

偏移量表示目標字串或物件轉換

axis : int, optional, default 0

closed :

哪乙個方向的間隔是關閉的

label :

which bin edge label to label bucket with

convention :

loffset : timedelta

調整重新取樣時間標籤

base : int, default 0

頻率均勻細分1天,「起源」的聚合的間隔。

例如,對於「5分鐘」頻率,基地可能範圍從0到4。

預設值為0

首先建立乙個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()

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

降低取樣頻率為三分鐘,但是每個標籤使用right來代替left。請注意,bucket中值的用作標籤。

>>> 

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

降低取樣頻率為三分鐘,但是關閉right區間。

>>> 

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秒

>>> 

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值。

>>> 

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值。

>>> 

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

>>>

defcustom_resampler

(array_like

):...

returnnp.

sum(

array_like)+

5

>>> 

series

.resample

('3t').

(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

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,重新取樣,是對原樣本重新處理的乙個方法,是乙個對常規時間序列資料重新取樣和頻率轉換的便捷的方法。降取樣 高頻資料到低頻資料 公升取樣 低頻資料到高頻資料 主要函式 resample pandas物件都會有這個方法 引數說明 freq 表示重取樣頻率,例如 m 5mi...