查找跳过的索引时间步长并在 Pandas 数据帧中填充值



我正在使用一个熊猫DataFrame,它的索引跳过一个或多个时间步长,在我的例子中是一个或多个小时。我想知道是否有办法找到这些时间步长跳过并可能插入这些缺失的时间步长。

我拥有的示例:

[In]: df
[Out]:
point_value
Timestamp   
2016-01-01 00:00:00 2550.63
2016-01-01 01:00:00 2535.97
2016-01-01 02:00:00 2538.25
2016-01-01 04:00:00 2548.63
2016-01-01 05:00:00 2555.16

我正在寻找的示例:

[In]: df
[Out]:
point_value
Timestamp   
2016-01-01 02:00:00 2538.25
2016-01-01 04:00:00 2548.63

理想情况下,在找到这些时间步长差距后,我想用缺失的时间步长来填充它们:

[In]: df
[Out]:
point_value
Timestamp   
2016-01-01 00:00:00 2550.63
2016-01-01 01:00:00 2535.97
2016-01-01 02:00:00 2538.25
2016-01-01 03:00:00 NaN
2016-01-01 04:00:00 2548.63
2016-01-01 05:00:00 2555.16

我已经搜索了堆栈溢出,似乎找不到与索引本身有关的内容。如果这是一个重复的问题,那么我很乐意将其删除并找到结果。 提前感谢您的帮助。

DataFrame.reindex应该实现您正在寻找的目标。只需定义一个新索引并将其应用于数据帧:

new_index = pd.date_range(start='1/1/2016 0:0:0', end='1/1/2016 5:0:0', periods=6)
df.reindex(index=new_index)

使用精确的每小时时间戳,您可以使用resample

df.resample('H').first()
point_value
Timestamp                       
2016-01-01 00:00:00      2550.63
2016-01-01 01:00:00      2535.97
2016-01-01 02:00:00      2538.25
2016-01-01 03:00:00          NaN
2016-01-01 04:00:00      2548.63
2016-01-01 05:00:00      2555.16

相关内容

最新更新