Python时间序列缺失值的处理方法(日期缺失填充)
前言
因近期进行时间序列分析时遇到了数据预处理中的缺失值处理问题,其中日期缺失和填充在网上没有找到较好较全资料,耗费了我一晚上工作时间,所以下面我对这次时间序列缺失值处理学习做了以下小结以供之后同行们参考指正。
时间序列缺失值处理
一、编程前准备
收集时间序列数据,相信看这篇博客的各位已经完成了这步。
需要安装pandas模块,并利用Python的Lib文件夹自带的datetime库(当时我因为在Pycharm环境中没看到datetime模块又去安装了DateTime模块并看了DateTime英文文档,发现这个对象的参数并不能满足时间序列缺失填充的需求,所以又下了datetime2模块,在import datetime2时发现Python自带datetime库,血虐啊,真是对菜鸟不要太善良)。
二、编程与讲解
因为我的数据不是普遍形式的时间序列形式,而下面程序是我按普遍形式时间序列数据改编的,与我数据不适用,所以可能存在问题,但是程序所用步骤和程序原理都是与原程序相同,对于初步接触的同行具有一定的借鉴和参考意义。
importpandasaspd
importdatetime
defload_Data():
#加载数据
df0=pd.read_csv("Path/power.csv",index_col='user_id')
df0['record_date']=pd.to_datetime(df0['record_date'])
returndf0
#把datetime转成字符串
defdatetime_toString(dt):
returndt.strftime("%Y-%m-%d")
#把字符串转成datetime
defstring_toDatetime(string):
returndatetime.strptime(string,"%Y-%m-%d")
#缺失值处理,插值替换
defdata_Full():
df1=load_Data()#加载数据
date_start=df1.iloc[0,0]#初始时间
df1_date=df1['record_date'].tolist()#数据日期转为列表
df1_data=df1['value'].tolist()#数据值转为列表
act=365#实际期望日期序列长度
forjinrange(0,len(df1_date)):
iflen(df1_date)
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。