Python 如何在timeseries数据帧中获得下一个可用日期
我有以下日期清单:Python 如何在timeseries数据帧中获得下一个可用日期,python,pandas,datetime,Python,Pandas,Datetime,我有以下日期清单: DatetimeIndex(['2015-11-19', '2015-12-17', '2015-12-23', '2016-01-19', '2016-01-22', '2016-01-29', '2016-02-05', '2016-02-15', '2016-02-18', '2016-03-01', ... '2020-07-17', '2020-0
DatetimeIndex(['2015-11-19', '2015-12-17', '2015-12-23', '2016-01-19',
'2016-01-22', '2016-01-29', '2016-02-05', '2016-02-15',
'2016-02-18', '2016-03-01',
...
'2020-07-17', '2020-07-20', '2020-07-21', '2020-07-28',
'2020-08-04', '2020-08-18', '2020-09-10', '2020-09-25',
'2020-09-28', '2020-10-01'],
dtype='datetime64[ns]', name='Date', length=137, freq=None)
我从
df
上的操作中获得了这些日期,我还有df2
,它也有这些日期,但下一个日期不是timedelta(day=1)
。因此,例如,第一个日期是2015-11-19
,但下一个日期可能是2015-11-22
。由于日期是索引值,如何获取下一个可用日期?创建一个与索引相等的新列,并.shift()
。确保先对索引进行排序
import pandas as pd
df = pd.DataFrame({'Date' : ['2015-11-19', '2015-12-17', '2015-12-23', '2016-01-19',
'2016-01-22', '2016-01-29', '2016-02-05', '2016-02-15',
'2016-02-18', '2016-03-01',
'2020-07-17', '2020-07-20', '2020-07-21', '2020-07-28',
'2020-08-04', '2020-08-18', '2020-09-10', '2020-09-25',
'2020-09-28', '2020-10-01']}).set_index('Date')
df['Next Date'] = df.index
df['Next Date'] = df['Next Date'].shift(-1)
df
Out[1]:
Next Date
Date
2015-11-19 2015-12-17
2015-12-17 2015-12-23
2015-12-23 2016-01-19
2016-01-19 2016-01-22
2016-01-22 2016-01-29
2016-01-29 2016-02-05
2016-02-05 2016-02-15
2016-02-15 2016-02-18
2016-02-18 2016-03-01
2016-03-01 2020-07-17
2020-07-17 2020-07-20
2020-07-20 2020-07-21
2020-07-21 2020-07-28
2020-07-28 2020-08-04
2020-08-04 2020-08-18
2020-08-18 2020-09-10
2020-09-10 2020-09-25
2020-09-25 2020-09-28
2020-09-28 2020-10-01
2020-10-01 NaN