Python基于滑動(dòng)平均思想實(shí)現(xiàn)缺失數(shù)據(jù)填充的方法-創(chuàng)新互聯(lián)

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

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的云龍網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
#!usr/bin/env python
#encoding:utf-8
from __future__ import division
'''
__Author__:沂水寒城
功能: python 基于滑動(dòng)平均思想實(shí)現(xiàn)簡(jiǎn)易的缺失數(shù)據(jù)填充
'''
def zeroDataFill(one_all_list):
  '''
  對(duì)于0數(shù)據(jù)處理,簡(jiǎn)單實(shí)現(xiàn)版本,可忽略
  '''
  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_list
def dataProcessing(one_all_list,num=7):
  '''
  對(duì)于時(shí)間序列數(shù)據(jù)中的 0 進(jìn)行處理,采用滑動(dòng)平均的方法來填充(默認(rèn)時(shí)間為一周)
  '''
  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_list
if __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)

本文標(biāo)題:Python基于滑動(dòng)平均思想實(shí)現(xiàn)缺失數(shù)據(jù)填充的方法-創(chuàng)新互聯(lián)
鏈接地址:http://muchs.cn/article38/cspipp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、全網(wǎng)營(yíng)銷推廣自適應(yīng)網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化