前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个不常用的东西,(补缺)

一个不常用的东西,(补缺)

作者头像
一个有趣的灵魂W
发布2020-09-15 12:21:37
2230
发布2020-09-15 12:21:37
举报

数据缺失是经常遇到的问题,本次的案例有一定的不足,但也发上来了。。。

很多数据按照数据的分布,可能是同一个小时、同一天、同一个站点、同一个、、、、总有那么多同一个的分类,同一个的数据底下可能却在子类型的部分数据缺失,这个案例针对的就是子类型下部分数据缺失的情况,如果是子类型全部缺失,暂时没有考虑到。:::

好了,接下来就是自说自话,气象数据每个小时,不同站点可能缺失,下面是qy、wd、fs、sd四个数据的部分缺失补齐,缺失值是999999:

###气象999999替换为逐小时平均值

import pandas as pd

import numpy as np

data=pd.read_csv(r'D:\Thesis\xiamen\wrw.csv',encoding='gbk')

arraydata=np.array(data)

fs=arraydata[:,6].astype('float')

nfs=[]

for i in range(int(len(fs)/31)):

picefs=fs[i*31:(i+1)*31]

npice=[]

npiceave=[]

for j in range(31):

if picefs[j]!=999999:

npice.append(picefs[j])

ave=sum(npice)/len(npice)

for j in range(31):

if picefs[j]!=999999:

npiceave.append(picefs[j])

else:

npiceave.append(ave)

nfs.append(npiceave)

nfs=np.array(nfs).reshape(len(fs))

fx=arraydata[:,7].astype('float')

nfx=[]

for i in range(int(len(fx)/31)):

picefx=fx[i*31:(i+1)*31]

npice=[]

npiceave=[]

for j in range(31):

if picefx[j]!=999999:

npice.append(picefx[j])

ave=sum(npice)/len(npice)

for j in range(31):

if picefx[j]!=999999:

npiceave.append(picefx[j])

else:

npiceave.append(ave)

nfx.append(npiceave)

nfx=np.array(nfx).reshape(len(fx))

wd=arraydata[:,8].astype('float')

nwd=[]

for i in range(int(len(wd)/31)):

picewd=wd[i*31:(i+1)*31]

npice=[]

npiceave=[]

for j in range(31):

if picewd[j]!=999999:

npice.append(picewd[j])

ave=sum(npice)/len(npice)

for j in range(31):

if picewd[j]!=999999:

npiceave.append(picewd[j])

else:

npiceave.append(ave)

nwd.append(npiceave)

nwd=np.array(nwd).reshape(len(wd))

sd=arraydata[:,9].astype('float')

nsd=[]

for i in range(int(len(sd)/31)):

picesd=sd[i*31:(i+1)*31]

npice=[]

npiceave=[]

for j in range(31):

if picesd[j]!=999999:

npice.append(picesd[j])

ave=sum(npice)/len(npice)

for j in range(31):

if picesd[j]!=999999:

npiceave.append(picesd[j])

else:

npiceave.append(ave)

nsd.append(npiceave)

nsd=np.array(nsd).reshape(len(sd))

qy=arraydata[:,10].astype('float')

nqy=[]

for i in range(int(len(qy)/31)):

piceqy=qy[i*31:(i+1)*31]

npice=[]

npiceave=[]

for j in range(31):

if piceqy[j]!=999999:

npice.append(piceqy[j])

ave=sum(npice)/len(npice)

for j in range(31):

if piceqy[j]!=999999:

npiceave.append(piceqy[j])

else:

npiceave.append(ave)

nqy.append(npiceave)

nqy=np.array(nqy).reshape(len(qy))

submission = pd.DataFrame({'fs':nfs,'fx':nfx,'wd':nwd,'sd':nsd,'qy':nqy})

submission.to_csv('D:/Thesis/xiamen/qx/wrwnqxxm.csv',index=False)

浮点型部分就是原先的999999

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一个有趣的灵魂W 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档