pandas.Index.shift#

Index.shift(periods=1, freq=None)[源代码][源代码]#

按所需的时间频率增量数移动索引。

此方法用于将类似日期时间索引的值按指定的时间增量移动指定的次数。

参数:
periodsint, 默认 1

要移动的周期数(或增量),可以是正数或负数。

freqpandas.DateOffset, pandas.Timedelta 或 str, 可选

频率增量以进行移位。如果为 None,则索引按其自身的 freq 属性进行移位。偏移别名是有效的字符串,例如,’D’, ‘W’, ‘M’ 等。

返回:
pandas.Index

移位索引。

参见

Series.shift

Series 的 Shift 值

备注

此方法仅针对类似日期时间的索引类实现,即 DatetimeIndex、PeriodIndex 和 TimedeltaIndex。

示例

将2011年的前5个月初放入一个索引中。

>>> month_starts = pd.date_range("1/1/2011", periods=5, freq="MS")
>>> month_starts
DatetimeIndex(['2011-01-01', '2011-02-01', '2011-03-01', '2011-04-01',
               '2011-05-01'],
              dtype='datetime64[ns]', freq='MS')

将索引移动10天。

>>> month_starts.shift(10, freq="D")
DatetimeIndex(['2011-01-11', '2011-02-11', '2011-03-11', '2011-04-11',
               '2011-05-11'],
              dtype='datetime64[ns]', freq=None)

freq 的默认值是索引的 freq 属性,在本例中为 ‘MS’(月初)。

>>> month_starts.shift(10)
DatetimeIndex(['2011-11-01', '2011-12-01', '2012-01-01', '2012-02-01',
               '2012-03-01'],
              dtype='datetime64[ns]', freq='MS')