请看下面这个简单的例子:
date = pd.date_range('1/1/2011', periods=5, freq='H')
df = pd.DataFrame({'cat' : ['A', 'A', 'A', 'B',
'B']}, index = date)
df
Out[278]:
cat
2011-01-01 00:00:00 A
2011-01-01 01:00:00 A
2011-01-01 02:00:00 A
2011-01-01 03:00:00 B
2011-01-01 04:00:00 B
我想创建一个包含指数滞后/领先值的变量,如下所示:
df['index_shifted']=df.index.shift(1)
例如,在时间2011-01-01 01:00:00
,我期望变量index_shifted
是2011-01-01 00:00:00
我该怎么做?谢谢!
3条答案
按热度按时间n1bvdmb61#
我认为您需要
Index.shift
和-1
:对我来说,它的工作没有
freq
,但也许这是必要的,在真实的数据:编辑:
如果
DatetimeIndex
的freq
为None
,则需要将freq
添加到shift
:i34xakig2#
df['index_shifted']=df.index.shift(-1)
有什么问题?(真诚的问题,不确定我是否错过了什么)
0s0u357o3#
这是一个老问题,但如果您的时间戳有间隙,或者您不想指定频率,并且您不处理时区,则以下方法将起作用:
如果您正在处理时区,则可以使用以下方法:
型