在時序數(shù)據(jù)處理過程中,我們經(jīng)常會遇到由于現(xiàn)實中的種種原因?qū)е芦@取的數(shù)據(jù)缺失的情況,這里的數(shù)據(jù)缺失不單單是指為‘NaN'的數(shù)據(jù),比如在AQI數(shù)據(jù)中,0是不可能出現(xiàn)的,這時候如果數(shù)據(jù)中出現(xiàn)了0也就是數(shù)據(jù)缺失了,最近正好在拿一個污染物的數(shù)據(jù)在做模型分析,中間就遇到了數(shù)據(jù)缺失值的問題,數(shù)據(jù)量本身不大,如果直接對缺失值進(jìn)行丟棄處理的話會進(jìn)一步減小數(shù)據(jù)量,所以這里考慮采用數(shù)據(jù)填充的方法來實現(xiàn)缺失數(shù)據(jù)的填充。我做了兩個版本其中,第一個版本很簡單可以不看,主要是簡單實現(xiàn)以下效果。具體實現(xiàn)如下:
創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計制作、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的云龍網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!#!usr/bin/env python #encoding:utf-8 from __future__ import division ''' __Author__:沂水寒城 功能: python 基于滑動平均思想實現(xiàn)簡易的缺失數(shù)據(jù)填充 ''' def zeroDataFill(one_all_list): ''' 對于0數(shù)據(jù)處理,簡單實現(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): ''' 對于時間序列數(shù)據(jù)中的 0 進(jìn)行處理,采用滑動平均的方法來填充(默認(rèn)時間為一周) ''' 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基于滑動平均思想實現(xiàn)缺失數(shù)據(jù)填充的方法-創(chuàng)新互聯(lián)
鏈接地址:http://www.rwnh.cn/article38/cspipp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、全網(wǎng)營銷推廣、自適應(yīng)網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、網(wǎng)頁設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容