没有合适的资源?快使用搜索试试~ 我知道了~
Python时间序列缺失值的处理方法(日期缺失填充)
62 下载量 140 浏览量
2020-09-18
20:34:21
上传
评论 6
收藏 53KB PDF 举报
温馨提示
试读
1页
主要给大家介绍了关于Python时间序列缺失值(日期缺失填充)的处理方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
资源推荐
资源详情
资源评论
Python时间序列缺失值的处理方法(日期缺失填充)时间序列缺失值的处理方法(日期缺失填充)
主要给大家介绍了关于Python时间序列缺失值(日期缺失填充)的处理方法,文中通过示例代码介绍的非常详
细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
前言前言
因近期进行时间序列分析时遇到了数据预处理中的缺失值处理问题,其中日期缺失和填充在网上没有找到较好较全资料,耗费
了我一晚上工作时间,所以下面我对这次时间序列缺失值处理学习做了以下小结以供之后同行们参考指正。
时间序列缺失值处理时间序列缺失值处理
一、编程前准备一、编程前准备
收集时间序列数据,相信看这篇博客的各位已经完成了这步。
需要安装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
总结总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。
资源评论
weixin_38671819
- 粉丝: 2
- 资源: 931
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 大学生竞赛平台源代码 springboot
- 基于VS+QT开发的FTP服务器源码+项目说明.zip
- 基于matlab实现心电信号预处理 滤波 去噪 QRs波检测 P波,T波检测.rar
- 华为 OD 机考攻略-加强版
- 基于matlab实现烟花算法程序大全.rar
- limbox86pcemulator_241983-3.apk
- 基于matlab实现烟花算法进行函数最小-最大值寻优,对十多个测试函数进行了寻优,效果良好,代码附带详细说明.rar
- 基于matlab实现样本熵算法,可用于提取生理信号的特征参数
- 基于matlab实现增强型烟花算法!文章最初由杜振鑫发表,后来北大博士重新修改后发表,这是源代码.rar
- 5G网优案例:传输IPV6分片报文Reserved字段校验不通过导致VONR呼叫失败.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功