Python 3.x 如何将datetime列移位-1,并用前两个值之间的差值填充NaT?
我有一个Python 3.x 如何将datetime列移位-1,并用前两个值之间的差值填充NaT?,python-3.x,pandas,Python 3.x,Pandas,我有一个df,如下所示: start values 0 2020-03-01 00:15:00 63.2 1 2020-03-01 00:30:00 61.0 2 2020-03-01 00:45:00 58.9 3 2020-03-01 01:00:00 57.0 4 2020-03-01 01:15:00 55.3 5 2020-03-01 01:30:00 53.7 我正在尝试创建一个名为end的新列,为此我做了: df['end'] = df['st
df
,如下所示:
start values
0 2020-03-01 00:15:00 63.2
1 2020-03-01 00:30:00 61.0
2 2020-03-01 00:45:00 58.9
3 2020-03-01 01:00:00 57.0
4 2020-03-01 01:15:00 55.3
5 2020-03-01 01:30:00 53.7
我正在尝试创建一个名为end
的新列,为此我做了:
df['end'] = df['start'].shift(-1)
这将提供以下输出
start values end
0 2020-03-01 00:15:00 63.2 2020-03-01 00:30:00
1 2020-03-01 00:30:00 61.0 2020-03-01 00:45:00
2 2020-03-01 00:45:00 58.9 2020-03-01 01:00:00
3 2020-03-01 01:00:00 57.0 2020-03-01 01:15:00
4 2020-03-01 01:15:00 55.3 2020-03-01 01:30:00
5 2020-03-01 01:30:00 53.7 NaT
我试图用前面两个值之间的差值填充NaT
,即NaT
应为
2020-03-01 01:45:00 (2020-03-01 01:30:00 + 15 mins (2020-03-01 01:30:00-2020-03-01 01:15:00))
我试过:
df['end'] = df['start'].shift(-1).diff().ffill()
但它给了我以下错误:
“TimedeltaProperties”对象没有属性“strftime”
我犯了什么错误
df["end"] = df.start.shift(-1).fillna(df.start + df.start.diff())