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实现脚本锁功能(同时只能执行一个脚本)
May 10 Python
Python中扩展包的安装方法详解
Jun 14 Python
Python简单定义与使用字典dict的方法示例
Jul 25 Python
浅述python2与python3的简单区别
Sep 19 Python
在Django中URL正则表达式匹配的方法
Dec 20 Python
Python实现判断一个整数是否为回文数算法示例
Mar 02 Python
计算机二级python学习教程(1) 教大家如何学习python
May 16 Python
python开发之anaconda以及win7下安装gensim的方法
Jul 05 Python
Python中PyQt5/PySide2的按钮控件使用实例
Aug 17 Python
python pymysql库的常用操作
Oct 16 Python
Python通过yagmail实现发送邮件代码解析
Oct 27 Python
通用的Django注册功能模块实现方法
Feb 05 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
mac下使用brew配置环境的步骤分享
2011/05/23 PHP
一些需要禁用的PHP危险函数(disable_functions)
2012/02/23 PHP
php读取大文件示例分享(文件操作类)
2014/04/13 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
基于PHP给大家讲解防刷票的一些技巧
2015/11/18 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
浅谈Laravel队列实现原理解决问题记录
2017/08/19 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
2018/04/12 PHP
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
2015/03/27 Javascript
JavaScript中的toUTCString()方法使用详解
2015/06/12 Javascript
输入法的回车与消息发送快捷键回车的冲突解决方法
2016/08/09 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
2017/08/07 Javascript
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
详解Vue中使用Echarts的两种方式
2018/07/03 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
JavaScript ES6中的简写语法总结与使用技巧
2018/12/30 Javascript
Vue实现验证码功能
2019/12/03 Javascript
微信小程序按顺序同步执行的两种方式
2019/12/20 Javascript
如何在selenium中使用js实现定位
2020/08/18 Javascript
详解阿里Node.js技术文档之process模块学习指南
2021/01/04 Javascript
python 上下文管理器使用方法小结
2017/10/10 Python
python分析作业提交情况
2017/11/22 Python
Python爬虫使用脚本登录Github并查看信息
2018/07/16 Python
Python小白不正确的使用类变量实例
2020/05/29 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
python+selenium实现12306模拟登录的步骤
2021/01/21 Python
一款纯css3实现的竖形二级导航的实例教程
2014/12/11 HTML / CSS
最好的商品表达自己:Cafepress
2019/09/04 全球购物
商务英语本科生的自我评价分享
2013/11/15 职场文书
黄金搭档广告词
2014/03/21 职场文书
团队拓展活动方案
2014/08/28 职场文书
村干部四风问题整改措施
2014/09/30 职场文书
2014年教师学期工作总结
2014/11/08 职场文书
八年级历史教学反思
2016/02/19 职场文书