国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python基于滑動平均思想實現缺失數據填充的方法

2020-02-16 01:16:22
字體:
來源:轉載
供稿:網友

在時序數據處理過程中,我們經常會遇到由于現實中的種種原因導致獲取的數據缺失的情況,這里的數據缺失不單單是指為‘NaN'的數據,比如在AQI數據中,0是不可能出現的,這時候如果數據中出現了0也就是數據缺失了,最近正好在拿一個污染物的數據在做模型分析,中間就遇到了數據缺失值的問題,數據量本身不大,如果直接對缺失值進行丟棄處理的話會進一步減小數據量,所以這里考慮采用數據填充的方法來實現缺失數據的填充。我做了兩個版本其中,第一個版本很簡單可以不看,主要是簡單實現以下效果。具體實現如下:

#!usr/bin/env python#encoding:utf-8from __future__ import division'''__Author__:沂水寒城功能: python 基于滑動平均思想實現簡易的缺失數據填充'''def zeroDataFill(one_all_list):  '''  對于0數據處理,簡單實現版本,可忽略  '''  res_list=[]  for i in range(len(one_all_list)):    if one_all_list[i]!=0:      res_list.append(one_all_list[i])    else:      if i==0:        for j in range(1,len(one_all_list)):          if one_all_list[j]!=0:            res_list.append(one_all_list[j])            break      elif i==len(one_all_list)-1:        res_list.append(int(sum(res_list[-3:-1])/2))      else:        tmp=0        for j in range(i,len(one_all_list)):          if one_all_list[j]!=0:            tmp=one_all_list[j]            break        now=(res_list[i-1]+tmp)/2        res_list.append(int(now))  print res_list  return res_listdef dataProcessing(one_all_list,num=7):  '''  對于時間序列數據中的 0 進行處理,采用滑動平均的方法來填充(默認時間為一周)  '''  nozero_list=[one for one in one_all_list if one!=0]  before_avg,last_avg=sum(nozero_list[:num])/num,sum(nozero_list[-1*num:])/num  res_list=[]  for i in range(len(one_all_list)):    if one_all_list[i]!=0:      res_list.append(one_all_list[i])    else:      tmp=int(num/2)+1      if i<=tmp:        res_list.append(int(before_avg))      elif i>=len(one_all_list)-tmp:        res_list.append(int(last_avg))        slice_list=one_all_list[i-tmp:i+tmp+1]        res_list.append(int(sum(slice_list)/(num-1)))  print res_list  return res_listif __name__=='__main__':  one_all_list=[0,12,3,5,1,5,7,8,4,0,12,14,0,0,45,34,67,43,0,9,1,0]  zeroDataFill(one_all_list)  dataProcessing(one_all_list,num=7)

結果如下:

[12, 12, 3, 5, 1, 5, 7, 8, 4, 8, 12, 14, 29, 37, 45, 34, 67, 43, 26, 9, 1, 17]
[5, 12, 3, 5, 1, 5, 7, 8, 4, 12, 14, 45, 34, 67, 43, 30, 33, 9, 1, 30, 8]

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林站長站的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 习水县| 彩票| 万宁市| 泸溪县| 三原县| 利辛县| 宜兰县| 宜兴市| 龙川县| 苗栗市| 商都县| 沅江市| 孟连| 榆树市| 南澳县| 陆川县| 万宁市| 浠水县| 隆林| 陇西县| 霞浦县| 托克逊县| 德江县| 全南县| 锡林浩特市| 潮安县| 筠连县| 江油市| 兴海县| 巧家县| 林芝县| 通海县| 南康市| 自治县| 安新县| 宜州市| 衡阳市| 电白县| 乌拉特后旗| 老河口市| 诸城市|