如何用下一个tim替换NaT

2024-04-25 17:57:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个df如下:

           start       values
0   2019-05-03 00:00:00 62.6
1   2019-05-03 00:15:00 62.6
2   2019-05-03 00:30:00 62.2
3   2019-05-03 00:45:00 62.9
4   2019-05-03 01:00:00 63.2

start列的时间序列间隔为15分钟

当我这样做时:

df['end'] = df['start'].shift(-1)

df['start'] = pd.to_datetime(df['start'])
df['end'] = pd.to_datetime(df['end'])

df['start'] = df['start'].dt.strftime('%Y%m%d%H%M')
df['end'] = df['end'].dt.strftime('%Y%m%d%H%M')

它提供了以下输出:

start   values  end
201905030000    62.6    201905030015
201905030015    62.6    201905030030
201905030030    62.2    201905030045
201905030045    62.9    201905030100
201905030100    63.2     NaT

我想用下一个立即日期值替换NaT(2019-05-03 01:15)

有办法吗

预期产出

start   values  end
201905030000    62.6    201905030015
201905030015    62.6    201905030030
201905030030    62.2    201905030045
201905030045    62.9    201905030100
201905030100    63.2    201905030115

Tags: todfdatetime间隔shift时间dt序列
1条回答
网友
1楼 · 发布于 2024-04-25 17:57:33

^{}^{}一起使用:

df['start'] = pd.to_datetime(df['start'])
df['end'] = df['start'] + df['start'].diff().bfill()
print(df)

输出:

                start  values                 end
0 2019-05-03 00:00:00    62.6 2019-05-03 00:15:00
1 2019-05-03 00:15:00    62.6 2019-05-03 00:30:00
2 2019-05-03 00:30:00    62.2 2019-05-03 00:45:00
3 2019-05-03 00:45:00    62.9 2019-05-03 01:00:00
4 2019-05-03 01:00:00    63.2 2019-05-03 01:15:00

相关问题 更多 >