資料重取樣
時間資料由乙個頻率轉換到另乙個頻率
降取樣公升取樣
生成一條帶隨機值的時間序列
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陣列用來存...