時間序列之重取樣引入

2021-09-25 19:19:07 字數 2413 閱讀 5239

資料重取樣

時間資料由乙個頻率轉換到另乙個頻率

降取樣公升取樣

生成一條帶隨機值的時間序列

import numpy as np

import pandas as pd

date_index=pd.date_range('20190701',periods=12) #periods區間

data_series=pd.series(index=date_index,data=np.arange(1,13))

print(data_series)

結果:

2019-07-01 1

2019-07-02 2

2019-07-03 3

2019-07-04 4

2019-07-05 5

2019-07-06 6

2019-07-07 7

2019-07-08 8

2019-07-09 9

2019-07-10 10

2019-07-11 11

2019-07-12 12

freq: d, dtype: int32

data_5d=data_series.resample('3d').sum() #五個資料一組進行求和,d為天。

print(data_5d)

結果:

2019-07-01 6

2019-07-04 15

2019-07-07 24

2019-07-10 33

freq: 3d, dtype: int32

如果放大序列那麼會有空缺值產生

print(data_5d.resample('d').asfreq())
結果:

2019-07-01 6.0

2019-07-02 nan

2019-07-03 nan

2019-07-04 15.0

2019-07-05 nan

2019-07-06 nan

2019-07-07 24.0

2019-07-08 nan

2019-07-09 nan

2019-07-10 33.0

freq: d, dtype: float64

三種填充方式:

ffill 空值取前面的值

data1=data_5d.resample('d').ffill()

print(data1)

結果:

2019-07-01 6

2019-07-02 6

2019-07-03 6

2019-07-04 15

2019-07-05 15

2019-07-06 15

2019-07-07 24

2019-07-08 24

2019-07-09 24

2019-07-10 33

freq: d, dtype: int32

當ffill()設定引數時,比如ffill(1),則填充的是乙個nan,如果沒有引數則預設填充所有,下面bfill也類似

bfill 空值取後面的值

data2=data_5d.resample('d').bfill()

print(data2)

結果:

2019-07-01 6

2019-07-02 15

2019-07-03 15

2019-07-04 15

2019-07-05 24

2019-07-06 24

2019-07-07 24

2019-07-08 33

2019-07-09 33

2019-07-10 33

freq: d, dtype: int32

interpolate 線性取值

data3=data_5d.resample('d').interpolate('linear')

print(data3)

結果:

2019-07-01 6.0

2019-07-02 9.0

2019-07-03 12.0

2019-07-04 15.0

2019-07-05 18.0

2019-07-06 21.0

2019-07-07 24.0

2019-07-08 27.0

2019-07-09 30.0

2019-07-10 33.0

freq: d, dtype: float64

Python資料分析 時間序列 重取樣

目錄將時間序列從乙個頻率轉換為另乙個頻率的過程,且會有資料的結合。降取樣 高頻資料 低頻資料,例如 以月為頻率的資料轉為以年為頻率的資料 公升取樣 低頻資料 高頻資料,例如 以年為頻率的資料轉為以月為頻率的資料 重取樣 resample 建立乙個以天為頻率的timeseries,重取樣為按2天為頻率...

Python 序列去重

1 效率最高的方式,需要保證序列中的元素都是可雜湊的,即數值 字串 元組 frozenset等,而列表 字典 集合之類的就不行。def foo s try return list set s expect expection,e pass 2 效率中的方式,需要保證序列中的元素都是可排序的。def ...

整數序列去重

輸入n個整數的序列,要求對這個序列進行去重操作。所謂去重,是指對這個序列中每個重複出現的整數,只保留該數第一次出現的位置,刪除其餘位置。例如 輸入包含兩行,第一行包含乙個正整數n 1 n 1000 表示第二行序列中數字的個數 第二行包含n個整數 範圍1 5000 用空格分隔 定義乙個arr陣列用來存...