在pandas数据框中追加日期时间行和转发填充数据

时间:2017-01-11 13:07:47

标签: python pandas dataframe

初学熊猫/ python用户。 我在pandas数据帧中使用24小时数据,但是当天的最后几分钟通常没有数据。

我只需要在每个文件上附加行,直到最后一个时间戳达到23.59,然后用数据向前填充最后几分钟。所以这个:

    19-12-2016 00:00    2   0.003232323
    ...
    19-12-2016 23:53    2   0.002822919
    19-12-2016 23:54    4   0.002822919
    19-12-2016 23:55    1   0.002822919

变为:

    19-12-2016 00:00    2   0.003232323
    ...
    19-12-2016 23:53    2   0.002822919
    19-12-2016 23:54    4   0.002822919
    19-12-2016 23:55    1   0.002822919
    19-12-2016 23:56    1   0.002822919
    19-12-2016 23:57    1   0.002822919
    19-12-2016 23:58    1   0.002822919
    19-12-2016 23:59    1   0.002822919

不幸的是,我使用的代码真的很长,我无法确切地指出我可以修改它的确切位置。

2 个答案:

答案 0 :(得分:3)

你可以:

reindex您的数据为

idx = pd.date_range('2016-12-19', periods=1440, freq='T')
df = df.reindex(idx)

然后使用df.mycol.ffill()

转发填充所有缺失的值

答案 1 :(得分:1)

单帧中多天数据的通用解决方案可能如下所示。获取开始和结束日期,然后reindex整个框架并填写缺失值。

start = df.index.min().date() 
end = df.index.max().date() + pd.Timedelta(1, 'D')
df.reindex(pd.date_range(start, end, freq='T', closed='left')).fillna(method='ffill')