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 cookbook(数据结构与算法)将序列分解为单独变量的方法
Feb 13 Python
用Python一键搭建Http服务器的方法
Jun 01 Python
在linux系统下安装python librtmp包的实现方法
Jul 22 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
Aug 20 Python
DJANGO-URL反向解析REVERSE实例讲解
Oct 25 Python
Python进程池Pool应用实例分析
Nov 27 Python
在django中使用apscheduler 执行计划任务的实现方法
Feb 11 Python
解决python3插入mysql时内容带有引号的问题
Mar 02 Python
Python关键字及可变参数*args,**kw原理解析
Apr 04 Python
python RSA加密的示例
Dec 09 Python
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
Apr 03 Python
使用python创建股票的时间序列可视化分析
Mar 03 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
PHP编码转换
2012/11/05 PHP
php连接mssql数据库的几种方法
2013/02/21 PHP
精美漂亮的php分页类代码
2013/04/02 PHP
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
2014/08/08 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
打开超链需要“确认”对话框的方法
2007/03/08 Javascript
js里的prototype使用示例
2010/11/19 Javascript
jQuery关于导航条背景切换效果实现示例
2013/09/04 Javascript
JSONP获取Twitter和Facebook文章数的具体步骤
2014/02/24 Javascript
Seajs的学习笔记
2014/03/04 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
2016/07/19 Javascript
JQuery.validationEngine表单验证插件(推荐)
2016/12/10 Javascript
javascript九宫格图片随机打乱位置的实现方法
2017/03/15 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
2017/03/23 jQuery
node.js中cluster的使用教程
2017/06/09 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
2018/05/16 Javascript
基于vue cli 通过命令行传参实现多环境配置
2018/07/12 Javascript
JavaScript布尔运算符原理使用解析
2020/05/06 Javascript
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
如何将python中的List转化成dictionary
2016/08/15 Python
基于scrapy的redis安装和配置方法
2018/06/13 Python
python实现ip地址查询经纬度定位详解
2019/08/30 Python
tensorflow使用range_input_producer多线程读取数据实例
2020/01/20 Python
css3通过scale()、rotate()实现放大、旋转
2020/03/19 HTML / CSS
白色公司:The White Company
2017/10/11 全球购物
美国男士内衣品牌:Tommy John
2017/12/22 全球购物
美国在线奢侈品寄售商店:Luxury Garage Sale
2018/08/19 全球购物
海蓝之谜英国官网:La Mer英国
2020/01/15 全球购物
应用电子技术专业个人求职信
2013/09/21 职场文书
党的群众路线学习材料
2014/05/16 职场文书
买房子个人收入证明
2014/10/12 职场文书
瘦西湖导游词
2015/02/03 职场文书
农村党支部承诺书
2015/04/30 职场文书
学校运动会开幕词
2016/03/03 职场文书
2019学校运动会开幕词
2019/05/13 职场文书