python快速数据分类(Python基于滑动平均思想实现缺失数据填充的方法)
类别:脚本大全 浏览量:1036
时间:2022-01-23 02:28:17 python快速数据分类
Python基于滑动平均思想实现缺失数据填充的方法在时序数据处理过程中,我们经常会遇到由于现实中的种种原因导致获取的数据缺失的情况,这里的数据缺失不单单是指为‘NaN'的数据,比如在AQI数据中,0是不可能出现的,这时候如果数据中出现了0也就是数据缺失了,最近正好在拿一个污染物的数据在做模型分析,中间就遇到了数据缺失值的问题,数据量本身不大,如果直接对缺失值进行丢弃处理的话会进一步减小数据量,所以这里考虑采用数据填充的方法来实现缺失数据的填充。我做了两个版本其中,第一个版本很简单可以不看,主要是简单实现以下效果。具体实现如下:
|
#!usr/bin/env python #encoding:utf-8 from __future__ import liision ''' __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_list def 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_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 ) |
结果如下:
[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]
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对开心学习网的支持。如果你想了解更多相关内容请查看下面相关链接
原文链接:https://blog.csdn.net/Together_CZ/article/details/85000866
您可能感兴趣
- python统计出现文字最多的词(使用Python 统计高频字数的方法)
- python写的工具(python调用虹软2.0第三版的具体使用)
- python随机生成时间戳(python时间序列按频率生成日期的方法)
- 随意化快排python算法(python快排算法详解)
- pythonmatplotlib散点图怎么画(python使用matplotlib画柱状图、散点图)
- python列表怎么赋值(详解Python列表赋值复制深拷贝及5种浅拷贝)
- 在python中如何删除指定的行(Python删除n行后的其他行方法)
- python给一个数字md5加密(Python写一个基于MD5的文件监听程序)
- python中赋值语句规则(Python动态赋值的陷阱知识点总结)
- python查找含特定字符的字符串(Python实现查找字符串数组最长公共前缀示例)
- python中dict怎么创建(Python数据类型之Dict字典实例详解)
- python怎么实现链表(Python实现数据结构线性链表单链表算法示例)
- python编写告白程序(python抖音表白程序源代码)
- 怎么用python获取目录(python 获得任意路径下的文件及其根目录的方法)
- 能自动点赞的小程序(python实现QQ空间自动点赞功能)
- python爬虫request方法介绍(详解Python3网络爬虫二:利用urllib.urlopen向有道翻译发送数据获得翻译结果)
- 金品公司 界界乐中秋限定飞行棋礼盒 露营藤篮礼盒全新上市(界界乐中秋限定飞行棋礼盒)
- 必看 8月,相比七夕,更需要注意的是这些事(必看8月相比七夕)
- 8月23日11时16分将迎处暑,逐渐进入气象意义上的秋天(8月23日11时16分将迎处暑)
- 花不语 下 如果重来一次的话,你还会这么选择吗(花不语下如果重来一次的话)
- 城市记忆之上海 最难忘的是老弄堂里的市井味道(城市记忆之上海)
- 太鸡贼了,这老小区轻松搞定了停车问题(这老小区轻松搞定了停车问题)
热门推荐
- dede标签调用大全(织梦dede所有实用标签调用方法搜集整理)
- 服务器宕机处理方式(web服务器宕机监控方法大全)
- php考试复习题(php+mysql开发的最简单在线题库在线做题系统完整案例)
- docker进入容器的方法(在docker容器中安装vi命令的简单操作)
- tomcat部署web项目常见问题(关于tomcat部署应用无法访问前端页面的问题)
- canvas绘制分辨率(通过canvas转换颜色为RGBA格式及性能问题的解决)
- sqlserver数据库如何分页(SQL server分页的4种方法示例很全面)
- 云服务器如何进入(云服务器配置怎么看?)
- 虚拟主机哪里有免备案(免备案云主机的真假鉴别)
- 静态web服务器nginx(WEB服务器该选择 Apache 还是 Nginx?)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9