我有这个df,这是一个来自实际的样本.每行表示以大约20分钟的间隔和几个其他列进行的测量.
datetime value
261 2022-10-21 02:00:13 0.164299
262 2022-10-21 02:20:12 0.163009
263 2022-10-21 02:40:14 0.162298
264 2022-10-21 03:00:12 0.162846
265 2022-10-24 08:46:38 1.788360
266 2022-10-24 09:06:47 1.442915
267 2022-10-24 09:27:28 1.246774
268 2022-10-24 09:46:58 0.194352
如你所见,2022-10-21 03:00:12
和2022-10-24 08:46:38
之间存在差距.我需要一种方法,首先确定差距在哪里(可能有n个),然后用适当的日期填充这些行,并用NaN填充相应的值.
现在,我将按如下方式生成缺少的日期:
# number of periods of 20 minutes between dates
periods = (df.iloc[265,0] - df.iloc[264,0]).total_seconds() / 60.0 / 20
# dates to fill gap
pd.date_range(df.iloc[264,0], df.iloc[265,0], periods=periods)
你知道怎么做吗?
编辑:预期输出(我不需要我在新行上添加的完全相同的分钟数,它们只是为了参考整体 idea )
datetime value
261 2022-10-21 02:00:13 0.164299
262 2022-10-21 02:20:12 0.163009
263 2022-10-21 02:40:14 0.162298
264 2022-10-21 03:00:12 0.162846
265 2022-10-21 03:20:00 NaN
266 2022-10-21 03:40:00 NaN
...
n-4 2022-10-24 08:26:00 NaN
n-3 2022-10-24 08:46:38 1.788360
n-2 2022-10-24 09:06:47 1.442915
n-1 2022-10-24 09:27:28 1.246774
n 2022-10-24 09:46:58 0.194352