Python | Pandas dataframe.shift() - GeeksforGeeks

31 Aug, 2021
Python is a great language for doing data analysis, primarily because of the fantastic ecosystem of data-centric python packages. Pandas is one of those packages and makes importing and analyzing data much easier.Pandas dataframe.shift() function Shift index by desired number of periods with an optional time freq. This function takes a scalar parameter called the period, which represents the number of shifts to be made over the desired axis. This function is very helpful when dealing with time-series data. 
Syntax:DataFrame.shift(periods=1, freq=None, axis=0) Parameters : periods : Number of periods to move, can be positive or negative freq : DateOffset, timedelta, or time rule string, optional Increment to use from the tseries module or time rule (e.g. ‘EOM’). See Notes axis : {0 or ‘index’, 1 or ‘columns’}Return : shifted : DataFrame 
Example #1: Use shift() function to shift the index axis by 2 periods in a time-series data 
Python3
# importing pandas as pdimport pandas as pd  # Creating row index values for our data frame# We have taken time frequency to be of 12 hours interval# We are generating five index value using "period = 5" parameter  ind = pd.date_range('01 / 01 / 2000', periods = 5, freq ='12H')  # Creating a dataframe with 4 columns# using "ind" as the index for our dataframedf = pd.DataFrame({"A":[1, 2, 3, 4, 5],                   "B":[10, 20, 30, 40, 50],                   "C":[11, 22, 33, 44, 55],                   "D":[12, 24, 51, 36, 2]},                    index = ind) # Print the dataframedf
Output:
Let’s use the dataframe.shift() function to shift the index axis by 2 periods in the positive direction  
Python3
# shift index axis by two periods in positive direction# axis = 0 is set by defaultdf.shift(2, axis = 0)
Output:
Let’s shift the index axis in the negative direction by some periods
Python3
# shift index axis by two periods in negative direction# axis = 0 is set by defaultdf.shift(-2, axis = 0)
Output :  
  Example #2: Use shift() function to shift the column axis by 2 periods in a time-series data
Python3
# importing pandas as pdimport pandas as pd  # Creating row index values for our data frame# We have taken time frequency to be of 12 hours interval# We are generating five index value using "period = 5" parameter  ind = pd.date_range('01 / 01 / 2000', periods = 5, freq ='12H')  # Creating a dataframe with 4 columns# using "ind" as the index for our dataframedf = pd.DataFrame({"A":[1, 2, 3, 4, 5],                   "B":[10, 20, 30, 40, 50],                   "C":[11, 22, 33, 44, 55],                   "D":[12, 24, 51, 36, 2]},                    index = ind) # Print the dataframedf
Let’s use the dataframe.shift() function to shift the column axis by 2 periods in a positive direction
Python3
# shift column axis by two periods in positive directiondf.shift(2, axis = 1)
Let’s shift the column axis in the negative direction by some periods
Python3
# shift column axis by two periods in negative directiondf.shift(-2, axis = 1)
Output :  
 
hemashree08022001gowda
Python pandas-dataFrame
Python pandas-dataFrame-methods
Python-pandas
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Python Dictionary
Enumerate() in Python
How to Install PIP on Windows ?
Different ways to create Pandas Dataframe
sum() function in Python
Create a Pandas DataFrame from Lists
How to drop one or multiple columns in Pandas Dataframe
*args and **kwargs in Python
Graph Plotting in Python | Set 1
How To Convert Python Dictionary To JSON?