時間序列補全

2021-09-10 12:40:41 字數 1886 閱讀 9298

改正後的**為:

import pandas as pd

import datetime

defload_data()

:#載入資料

df0 = pd.read_csv(

"path/power.csv"

,index_col=

'user_id'

) df0[

'record_date'

]= pd.to_datetime(df0[

'record_date'])

return df0

#把datetime轉成字串

defdatetime_tostring

(dt)

:return dt.strftime(

"%y-%m-%d"

)#把字串轉成datetime

defstring_todatetime

(string)

:return datetime.strptime(string,

"%y-%m-%d"

)#缺失值處理,插值替換

defdata_full()

: df1 = load_data(

)#載入資料

date_start = df1.iloc[0,

0]#初始時間

df1_date = df1[

'record_date'

].tolist(

)#資料日期轉為列表

df1_data = df1[

'value'

].tolist(

)#資料值轉為列表

act =

365#實際期望日期序列長度

date0 = date_start

date_s = datetime_tostring(date0)

#日期轉換為字串型別,使日期可進行邏輯比較

for j in

range(0

,len

(df1_date)):

iflen

(df1_date)

< act:

date_i = df1_date[j]

#順序選取資料中日期列表裡對應各日期

date_is = datetime_tostring(date_i)

while date_is != date_s:

#如資料中日期列表與期望日期序列不相等,即存在缺失值執行while程式

nada =

(df1_data[j]

+ df1_data[j+1]

)/2#計算缺失處左右相鄰插值,然後對value進行補全,此處可進行相應的修改。

adda =

[date0, nada]

date_da = pd.dataframe(adda)

.t date_da.columns = df1.columns

df1 = pd.concat(

[df1, date_da]

)#將缺失日期加入資料列表中

date0 += datetime.timedelta(days=1)

#日期加一

date_s = datetime_tostring(date0)

#日期字串轉日期時間型別

date0 += datetime.timedelta(days=1)

#日期加一

date_s = datetime_tostring(date0)

#日期字串轉日期時間型別

df1 = df1.sort_values(by=

['record_date'])

return df1

這樣就可以啦!!!在此也感謝博主的分享啦!

演算法題 補全括號序列

大概意思就是 給出乙個中括號序列,在序列前後可以加中括號字元,補全它。當時沒想起來解決辦法,然後涼涼了,後來專門去搞了這道題,終於搞定 思路在注釋裡寫的比較詳細了,此處不再贅述 用了類似棧的思想 字串轉陣列 param str string 輸入的字串 return array 轉換之後的結果陣列 ...

時間序列分析

協方差矩陣和相關係數主要研究兩個連續變數的相似程度 相關性 協方差公式 協方差矩陣 相關係數 cov x,y var x var y 相關係數矩陣 可以使用ljung box方法進行檢驗。即box.test data,type ljung box lag num 來檢驗,當p value大於0.05...

時間序列分析

時間序列資料分為平穩 寬平穩 和非平穩兩種。平穩序列中也包括隨機序列,即序列資料之間沒有任何相關性或記憶性,純隨機的,這種序列沒有挖掘分析的必要。純隨機序列也稱為白雜訊序列。序列中的隨機變數之間的相關係數r k 0,k不為 0 經過預處理若發現序列是平穩非隨機序列,則可用的模型為arma。ar模型是...