用python中的NaN填充丢失的时间戳

用python中的NaN填充丢失的时间戳,python,Python,我有一个名为ozon的数据框,只有一列名为O3。它以5分钟的时间步长给出meanO3值,但不幸的是,它在整个数据集中缺少一些时间步长。例如: Datetime 2020-03-02 10:10:00 20.90 2020-03-02 10:15:00 20.95 2020-03-02 10:20:00 20.53 2020-03-02 10:25:00 20.96 2020-03-02 10:30:00 14.36 2020-03-04 08:00:00 37.77 2020-03-

我有一个名为
ozon
的数据框,只有一列名为
O3
。它以5分钟的时间步长给出mean
O3
值,但不幸的是,它在整个数据集中缺少一些时间步长。例如:

Datetime
2020-03-02 10:10:00  20.90
2020-03-02 10:15:00  20.95
2020-03-02 10:20:00  20.53
2020-03-02 10:25:00  20.96
2020-03-02 10:30:00  14.36
2020-03-04 08:00:00  37.77
2020-03-04 08:05:00  33.83
2020-03-04 08:10:00  30.71
2020-03-04 08:15:00  29.83
2020-03-04 08:20:00  29.39
2020-03-04 08:25:00  28.97
2020-03-04 08:30:00  29.03
2020-03-04 08:35:00  29.07
你可以在数据中看到几乎两天的差距。我想填补这些空白,以便“Datetime”列中没有空白(因此是一个具有5分钟时间步长的一致系列)。我希望缺少的
O3
值变为
NaN
。我尝试了以下代码(以及其他代码):

ozon.index=pd.DatetimeIndex(ozon.index)
ozon=ozon.reindex(ozon.index,fill_值=0)
不幸的是,这并没有改变输出中的任何内容。 我尝试用
0
填充
O3
值,因为我后来还是过滤掉了这些值,但最好的选择仍然是用
NaN
填充


我还尝试了在网站上找到的其他一些建议,但不幸的是,我还没有找到一个好的解决方案。因此,非常感谢您的帮助!所以,请提前多谢

您正在寻找
resample()
函数。使用:

df.set_index('Datetime').resample('5T').sum().replace(0.00, pd.NA) # 5 minute frequency
它将添加所有缺少的时间步,并填写
nan
作为其值:

                    O3
Datetime    
2020-03-02 10:10:00 20.90
2020-03-02 10:15:00 20.95
2020-03-02 10:20:00 20.53
2020-03-02 10:25:00 20.96
2020-03-02 10:30:00 14.36
2020-03-02 10:35:00 NaN
2020-03-02 10:40:00 NaN
2020-03-02 10:45:00 NaN
2020-03-02 10:50:00 NaN
2020-03-02 10:55:00 NaN
....
如果您不特别想要
nan
值,只需不
replace()
zero:

df.set_index('Datetime').resample('5T').sum()
如果datetime已经是索引:

df.resample('5T').sum()

请提供a,以及当前和预期输出。感谢您的建议!我已经编辑了我的文章,我希望它现在是正确的根据指导方针。我对编程(以及这个网站)很陌生,所以我还不能完全确定现在是否可以。非常感谢!但是,它似乎不起作用,因为Datetime不是列,而是DatetimeIndex。我不能用df['Datetime']来引用它,所以我尝试通过以下方式引用它:df.set_index(df.index).resample('5T').sum().replace(0.00,pd.NA)。我没有得到任何错误,但DatetimeIndex没有重新采样。但是非常感谢你的建议!我在解决这个问题上又前进了一步!然后您不需要重置索引,只需重新采样即可。我在回答中也补充了这一点