【问题标题】:Filling missing dates by imputing on previous dates in Python通过在 Python 中输入以前的日期来填充缺失的日期
【发布时间】:2018-11-07 19:43:52
【问题描述】:

我有一个时间序列,我想滞后并预测未来一年的数据,如下所示:

Date           Energy         Pred Energy      Lag Error        
.
2017-09-01       9                 8.4
2017-10-01       10                9                
2017-11-01       11                10
2017-12-01       12                11.5
2018-01-01        1                1.3
NaT                                           (pred-true)
NaT
NaT
NaT
.
.

我想要做的就是将日期输入 NaT 条目以从 2018-01-01 继续到 2019-01-01(就像我们在 Excel 拖放中一样填充它们),因为有足够的 NaT 位置可以填到那个点。

我用各种方法尝试了model['Date'].fillna(),要么只是重复之前的相同日期,要么放弃我不想放弃的东西。

有什么方法可以像以前的数据一样以 1 个月的增量填充这些 NaT?

【问题讨论】:

    标签: python python-3.x pandas datetime dataframe


    【解决方案1】:

    制作df并设置索引(设置索引有更好的方法):

    """
    Date,Energy,Pred Energy,Lag Error        
    2017-09-01,9,8.4
    2017-10-01,10,9                
    2017-11-01,11,10
    2017-12-01,12,11.5
    2018-01-01,1,1.3
    """
    import pandas as pd
    
    df = pd.read_clipboard(sep=",", parse_dates=True)
    df.set_index(pd.DatetimeIndex(df['Date']), inplace=True)
    df.drop("Date", axis=1, inplace=True)
    df
    

    重新索引到新的date_range

    idx = pd.date_range(start='2017-09-01', end='2019-01-01', freq='MS')
    df = df.reindex(idx)
    

    输出:

                Energy  Pred Energy  Lag Error        
    2017-09-01     9.0          8.4                NaN
    2017-10-01    10.0          9.0                NaN
    2017-11-01    11.0         10.0                NaN
    2017-12-01    12.0         11.5                NaN
    2018-01-01     1.0          1.3                NaN
    2018-02-01     NaN          NaN                NaN
    2018-03-01     NaN          NaN                NaN
    2018-04-01     NaN          NaN                NaN
    2018-05-01     NaN          NaN                NaN
    2018-06-01     NaN          NaN                NaN
    2018-07-01     NaN          NaN                NaN
    2018-08-01     NaN          NaN                NaN
    2018-09-01     NaN          NaN                NaN
    2018-10-01     NaN          NaN                NaN
    2018-11-01     NaN          NaN                NaN
    2018-12-01     NaN          NaN                NaN
    2019-01-01     NaN          NaN                NaN
    

    帮助: Pandas Set DatetimeIndex

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-07
      • 2021-07-22
      • 2022-08-15
      • 1970-01-01
      • 2018-02-12
      • 1970-01-01
      • 1970-01-01
      • 2019-07-20
      相关资源
      最近更新 更多