How to Convert a Pandas DateTime Series to a Period Series
To convert a Pandas DateTime Series to a Period series we use the dt.to_period() method of the Pandas library in Python.
Let us understand it better with an example:
Example
Use the dt.to_period() function to cast the underlying data of the given series object to Index at two-year frequency.
Python3
# importing pandas as pd import pandas as pd # Creating the Series sr = pd.Series(pd.date_range( '2012-12-31 00:00' , periods = 5 , freq = 'D' , tz = 'US / Central' )) # Creating the index idx = [ 'Day 1' , 'Day 2' , 'Day 3' , 'Day 4' , 'Day 5' ] # set the index sr.index = idx # Print the series print (sr) |
Output:
Now we can use dt.to_period() method to convert it to period format
Python3
# cast to target frequency result = sr.dt.to_period(freq = '2Y' ) # print the result print (result) |
Output:
As we can see in the output, the Series.dt.to_period() function has successfully cast the data to the target frequency.
Pandas Series dt.to_period() Method | Convert DateTime to Period Format
The Pandas dt.to_period() method converts the underlying data of the given Series object to PeriodArray/Index at a particular frequency.
It is used to convert a DateTime series to a period series with a specific frequency, such as daily, monthly, quarterly, or yearly periods.
Example
Python3
import pandas as pd sr = pd.Series([ '2012-12-31' , '2019-1-1 12:30' , '2008-02-2 10:30' , '2010-1-1 09:25' , '2019-12-31 00:00' ]) idx = [ 'Day 1' , 'Day 2' , 'Day 3' , 'Day 4' , 'Day 5' ] sr.index = idx sr = pd.to_datetime(sr) result = sr.dt.to_period(freq = 'W' ) print (result) |
Output: