- API reference
- Index objects
- pandas.Index.shift
pandas.Index.shift#
- Index.shift(periods=1,freq=None)[source]#
Shift index by desired number of time frequency increments.
This method is for shifting the values of datetime-like indexesby a specified time increment a given number of times.
- Parameters:
- periodsint, default 1
Number of periods (or increments) to shift by,can be positive or negative.
- freqpandas.DateOffset, pandas.Timedelta or str, optional
Frequency increment to shift by.If None, the index is shifted by its ownfreq attribute.Offset aliases are valid strings, e.g., ‘D’, ‘W’, ‘M’ etc.
- Returns:
- pandas.Index
Shifted index.
See also
Series.shift
Shift values of Series.
Notes
This method is only implemented for datetime-like index classes,i.e., DatetimeIndex, PeriodIndex and TimedeltaIndex.
Examples
Put the first 5 month starts of 2011 into an index.
>>>month_starts=pd.date_range('1/1/2011',periods=5,freq='MS')>>>month_startsDatetimeIndex(['2011-01-01', '2011-02-01', '2011-03-01', '2011-04-01', '2011-05-01'], dtype='datetime64[ns]', freq='MS')
Shift the index by 10 days.
>>>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)
The default value offreq is thefreq attribute of the index,which is ‘MS’ (month start) in this example.
>>>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')