zoukankan      html  css  js  c++  java
  • Python处理时间序列缺失值

    import pandas as pd
    import datetime


    def load_Data():
    # 加载数据
    df0 = pd.read_csv(r'D:PythonCharmPythonInfos.csv')
    df0['time'] = pd.to_datetime(df0['time'])
    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() # 加载数据
    # a = df1.iloc[len(df1)-7, 0]
    date_start = df1.iloc[len(df1)-1, 0] # 初始时间
    df1_date = df1['time'].tolist() # 数据日期转为列表
    df1_data = df1['price'].tolist() # 数据值转为列表
    info = []
    #df1_date = list(reversed(df1_date))
    #df1_data = list(reversed(df1_data))
    times = ''
    act = 365 * 26 # 实际期望日期序列长度
    for j in range(0, len(df1_date)):
    if len(info) < 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]) # 将前面的值直接赋值给缺失的值
    info.append(pd.DataFrame({'time': date0, 'price': nada}, index=[0]))
    date0 += datetime.timedelta(days=1) # 日期加一
    date_s = datetime_toString(date0) # 日期字符串转日期时间类型
    date0 += datetime.timedelta(days=1) # 日期加一
    date_s = datetime_toString(date0) # 日期字符串转日期时间类型
    info.append(pd.DataFrame({'time': date_is, 'price': df1_data[j]}, index=[0]))
    date_start = date0
    info = pd.concat(info, ignore_index=True)
    return info


    d = data_Full()
    print(d.columns)
    print(len(d))
    message = []
    for time, price in d.values:
    message.append(pd.DataFrame({'time': time, 'price': price}, index=[0]))
    qhdInfo = pd.concat(message, ignore_index=True)
    qhdInfo.to_csv('info.csv', index=False)
    没处理之前数据



    处理之后的数据

  • 相关阅读:
    浅谈P2P、P2C 、O2O 、B2C、B2B、 C2C的区别
    用CornerStone配置SVN,HTTP及svn简单使用说明
    Nginx之让用户通过用户名密码认证访问web站点
    linux下php redis扩展安装
    mac下用户用户组命令行操作
    linux下MySQL安装及设置(二)
    linux下MySQL安装及设置
    linux下php的一些问题
    计算多个文档之间的文本相似程度
    提取图像兴趣点
  • 原文地址:https://www.cnblogs.com/lhd1998/p/13601526.html
Copyright © 2011-2022 走看看