Python时间序列缺失值的处理方法(日期缺失填充)


Posted in Python onAugust 11, 2019

前言

因近期进行时间序列分析时遇到了数据预处理中的缺失值处理问题,其中日期缺失和填充在网上没有找到较好较全资料,耗费了我一晚上工作时间,所以下面我对这次时间序列缺失值处理学习做了以下小结以供之后同行们参考指正。

时间序列缺失值处理

一、编程前准备

收集时间序列数据,相信看这篇博客的各位已经完成了这步。

需要安装pandas模块,并利用Python的Lib文件夹自带的datetime库(当时我因为在Pycharm环境中没看到datetime模块又去安装了DateTime模块并看了DateTime英文文档,发现这个对象的参数并不能满足时间序列缺失填充的需求,所以又下了datetime2模块,在import  datetime2时发现Python自带datetime库,血虐啊,真是对菜鸟不要太善良)。

二、编程与讲解

因为我的数据不是普遍形式的时间序列形式,而下面程序是我按普遍形式时间序列数据改编的,与我数据不适用,所以可能存在问题,但是程序所用步骤和程序原理都是与原程序相同,对于初步接触的同行具有一定的借鉴和参考意义。

import pandas as pd
import datetime
def load_Data():
  #加载数据
  df0 = pd.read_csv("Path/power.csv",index_col='user_id')
  df0['record_date'] = pd.to_datetime(df0['record_date'])
  return df0
 
#把datetime转成字符串
def datetime_toString(dt):
  return dt.strftime("%Y-%m-%d")
 
#把字符串转成datetime
def string_toDatetime(string):
  return datetime.strptime(string, "%Y-%m-%d")
 
#缺失值处理,插值替换
def data_Full():
  df1 = load_Data()  #加载数据
  date_start = df1.iloc[0, 0] #初始时间
  df1_date = df1['record_date'].tolist() #数据日期转为列表
  df1_data = df1[ 'value'].tolist()  #数据值转为列表
  act = 365    #实际期望日期序列长度
  for j in range(0, len(df1_date)):
    if len(df1_date) < act:
      date0 = date_start
      date_s = datetime_toString(date0)  #日期转换为字符串类型,使日期可进行逻辑比较
      date_i = df1_date[j]  #顺序选取数据中日期列表里对应各日期
      date_is = datetime_toString(date_i)
      while date_is != date_s:  #如数据中日期列表与期望日期序列不相等,即存在缺失值执行while程序
        nada = (df1_data[j] + df1_data[j+1]) / 2  #计算缺失处左右相邻插值
        adda = [date0, nada]  
        date_da = pd.DataFrame(adda).T
        date_da.columns = df1.columns
        df1 = pd.concat([df1, date_da]) #将缺失日期加入数据列表中
        date0 += datetime.timedelta(days=1) #日期加一
        date_s = datetime_toString(date0)  #日期字符串转日期时间类型
      date0 += datetime.timedelta(days=1) #日期加一
      date_s = datetime_toString(date0)  #日期字符串转日期时间类型
  df1 = df1.sort_values(by=['record_date'])
  return df1

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python查询阿里巴巴关键字排名的方法
Jul 08 Python
使用Python操作MySQL的一些基本方法
Aug 16 Python
Python中pygame安装方法图文详解
Nov 11 Python
Python heapq使用详解及实例代码
Jan 25 Python
python中关于for循环的碎碎念
Jun 30 Python
python2.7实现FTP文件下载功能
Apr 15 Python
Python向excel中写入数据的方法
May 05 Python
使用Python将Exception异常错误堆栈信息写入日志文件
Apr 08 Python
Python如何定义接口和抽象类
Jul 28 Python
Django实现微信小程序支付的示例代码
Sep 03 Python
Python爬虫开发与项目实战
Dec 16 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
Dec 31 Python
python3实现带多张图片、附件的邮件发送
Aug 10 #Python
python实现邮件自动发送
Aug 10 #Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
Aug 10 #Python
python正则爬取某段子网站前20页段子(request库)过程解析
Aug 10 #Python
Django项目主urls导入应用中views的红线问题解决
Aug 10 #Python
Python中的 sort 和 sorted的用法与区别
Aug 10 #Python
Python测试模块doctest使用解析
Aug 10 #Python
You might like
实用函数8
2007/11/08 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
php设置session值和cookies的学习示例
2014/03/21 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
2014/11/29 PHP
php提取微信账单的有效信息
2018/10/01 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
实现png图片和png背景透明(支持多浏览器)的方法
2009/09/08 Javascript
jQuery 1.7.2中getAll方法的疑惑分析
2012/05/23 Javascript
javascript 数组排序函数sort和reverse使用介绍
2013/11/21 Javascript
JavaScript原生对象之Date对象的属性和方法详解
2015/03/13 Javascript
JavaScript中split() 使用方法汇总
2015/04/17 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
2016/06/07 Javascript
jQuery实现右下角可缩放大小的层完整实例
2016/06/20 Javascript
JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
2016/12/27 Javascript
手机端js和html5刮刮卡效果
2020/09/29 Javascript
详解如何提高 webpack 构建 Vue 项目的速度
2017/07/03 Javascript
解决IE7中使用jQuery动态操作name问题
2017/08/28 jQuery
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
2017/10/13 jQuery
微信小程序支付及退款流程详解
2017/11/30 Javascript
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
Vue开发环境中修改端口号的实现方法
2019/08/15 Javascript
vue 实现路由跳转时更改页面title
2019/11/05 Javascript
vue 实现超长文本截取,悬浮框提示
2020/07/29 Javascript
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
Python requests设置代理的方法步骤
2020/02/23 Python
2014年圣诞节倒计时网页的制作过程
2014/12/05 HTML / CSS
Vans英国官方网站:美国南加州的原创极限运动潮牌
2017/01/20 全球购物
DBA数据库管理员JAVA程序员架构师必看
2016/02/07 面试题
自荐信模版
2013/10/24 职场文书
致200米运动员广播稿
2014/02/06 职场文书
酒店管理求职信范文
2014/04/06 职场文书
《二泉映月》教学反思
2014/04/15 职场文书
市场拓展计划书
2014/05/03 职场文书
业务员年终工作总结2015
2015/05/28 职场文书
JS数组的常用方法整理
2021/03/31 Javascript