改正後的**為:
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模型是...