In [1]:
import pandas as pd

In [2]:
df = pd.DataFrame({'value': range(1, 16, 2)},
                  index=pd.date_range('2018-01-01', '2018-01-15', freq='2D'))

In [3]:
print(df)


            value
2018-01-01      1
2018-01-03      3
2018-01-05      5
2018-01-07      7
2018-01-09      9
2018-01-11     11
2018-01-13     13
2018-01-15     15

In [4]:
print(df.shift())


            value
2018-01-01    NaN
2018-01-03    1.0
2018-01-05    3.0
2018-01-07    5.0
2018-01-09    7.0
2018-01-11    9.0
2018-01-13   11.0
2018-01-15   13.0

In [5]:
print(df.shift(2))


            value
2018-01-01    NaN
2018-01-03    NaN
2018-01-05    1.0
2018-01-07    3.0
2018-01-09    5.0
2018-01-11    7.0
2018-01-13    9.0
2018-01-15   11.0

In [6]:
print(df.shift(freq='D'))


            value
2018-01-02      1
2018-01-04      3
2018-01-06      5
2018-01-08      7
2018-01-10      9
2018-01-12     11
2018-01-14     13
2018-01-16     15

In [7]:
print(df.shift(freq='3D'))


            value
2018-01-04      1
2018-01-06      3
2018-01-08      5
2018-01-10      7
2018-01-12      9
2018-01-14     11
2018-01-16     13
2018-01-18     15

In [8]:
print(df.shift(3, freq='D'))


            value
2018-01-04      1
2018-01-06      3
2018-01-08      5
2018-01-10      7
2018-01-12      9
2018-01-14     11
2018-01-16     13
2018-01-18     15

In [9]:
print(df.shift(freq='W'))


            value
2018-01-07      1
2018-01-07      3
2018-01-07      5
2018-01-14      7
2018-01-14      9
2018-01-14     11
2018-01-14     13
2018-01-21     15

In [10]:
print(df.shift(freq='M'))


            value
2018-01-31      1
2018-01-31      3
2018-01-31      5
2018-01-31      7
2018-01-31      9
2018-01-31     11
2018-01-31     13
2018-01-31     15

In [11]:
print(df.shift(freq='7D'))


            value
2018-01-08      1
2018-01-10      3
2018-01-12      5
2018-01-14      7
2018-01-16      9
2018-01-18     11
2018-01-20     13
2018-01-22     15

In [12]:
print(df.shift(freq='31D'))


            value
2018-02-01      1
2018-02-03      3
2018-02-05      5
2018-02-07      7
2018-02-09      9
2018-02-11     11
2018-02-13     13
2018-02-15     15

In [13]:
df_m = pd.DataFrame({'value': range(1, 13)},
                    index=pd.date_range('2018-01-01', '2018-12-31', freq='M'))

In [14]:
print(df_m)


            value
2018-01-31      1
2018-02-28      2
2018-03-31      3
2018-04-30      4
2018-05-31      5
2018-06-30      6
2018-07-31      7
2018-08-31      8
2018-09-30      9
2018-10-31     10
2018-11-30     11
2018-12-31     12

In [15]:
print(df_m.shift(freq='M'))


            value
2018-02-28      1
2018-03-31      2
2018-04-30      3
2018-05-31      4
2018-06-30      5
2018-07-31      6
2018-08-31      7
2018-09-30      8
2018-10-31      9
2018-11-30     10
2018-12-31     11
2019-01-31     12