在pandas数据框中追加日期时间行并向前填充数据

4

初学者的panda/python用户。 我正在使用pandas dataframe中的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个回答

5
你可以:
重新索引你的数据,如下所示:
idx = pd.date_range('2016-12-19', periods=1440, freq='T')
df = df.reindex(idx)

然后使用df.mycol.ffill()来填充任何缺失的值。


2
这不应该起作用,因为它不会将时间延长超过数据框中的最后一次时间。 - Ted Petrou

3

在处理单个框架内多天数据的情况下,通用解决方案可能如下。获取开始和结束日期,然后 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')

2
你在开玩笑吗,伙计?这是我的解决方案。 - ℕʘʘḆḽḘ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接