Python时间序列缺失值的处理方法(日期缺失填充)
Python  /  管理员 发布于 7年前   520
前言
因近期进行时间序列分析时遇到了数据预处理中的缺失值处理问题,其中日期缺失和填充在网上没有找到较好较全资料,耗费了我一晚上工作时间,所以下面我对这次时间序列缺失值处理学习做了以下小结以供之后同行们参考指正。
时间序列缺失值处理
一、编程前准备
收集时间序列数据,相信看这篇博客的各位已经完成了这步。
需要安装pandas模块,并利用Python的Lib文件夹自带的datetime库(当时我因为在Pycharm环境中没看到datetime模块又去安装了DateTime模块并看了DateTime英文文档,发现这个对象的参数并不能满足时间序列缺失填充的需求,所以又下了datetime2模块,在import datetime2时发现Python自带datetime库,血虐啊,真是对菜鸟不要太善良)。
二、编程与讲解
因为我的数据不是普遍形式的时间序列形式,而下面程序是我按普遍形式时间序列数据改编的,与我数据不适用,所以可能存在问题,但是程序所用步骤和程序原理都是与原程序相同,对于初步接触的同行具有一定的借鉴和参考意义。
import pandas as pdimport datetimedef 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") #把字符串转成datetimedef 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
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家的支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号