Python Pandas - How to convert DateTimeIndex to Period

To convert DateTimeIndex to Period, use the datetimeindex.to_period() method in Pandas. The frequency is set using the freq parameter.

Creating a DateTimeIndex

First, let's create a DateTimeIndex with specific period and frequency ?

import pandas as pd

# Create DatetimeIndex with period 5 and frequency as 2 years
datetimeindex = pd.date_range('2021-10-18 07:20:32.261811624', periods=5, freq='2Y')

print("DateTimeIndex...")
print(datetimeindex)
print("\nDateTimeIndex frequency...")
print(datetimeindex.freq)
DateTimeIndex...
DatetimeIndex(['2021-12-31 07:20:32.261811624',
               '2023-12-31 07:20:32.261811624',
               '2025-12-31 07:20:32.261811624',
               '2027-12-31 07:20:32.261811624',
               '2029-12-31 07:20:32.261811624'],
              dtype='datetime64[ns]', freq='2A-DEC')
DateTimeIndex frequency...
<2 * YearEnds: month=12>

Converting to Period with Monthly Frequency

Convert DateTimeIndex to Period using the to_period() method with monthly frequency ?

import pandas as pd

datetimeindex = pd.date_range('2021-10-18 07:20:32.261811624', periods=5, freq='2Y')

# Convert DateTimeIndex to Period with monthly frequency
period_index = datetimeindex.to_period(freq='M')
print("Convert DateTimeIndex to Period...")
print(period_index)
Convert DateTimeIndex to Period...
PeriodIndex(['2021-12', '2023-12', '2025-12', '2027-12', '2029-12'], dtype='period[M]')

Different Frequency Options

You can convert to different period frequencies like yearly, quarterly, or daily ?

import pandas as pd

datetimeindex = pd.date_range('2021-10-18 07:20:32.261811624', periods=3, freq='6M')

print("Original DateTimeIndex:")
print(datetimeindex)

print("\nYearly Period:")
print(datetimeindex.to_period(freq='Y'))

print("\nQuarterly Period:")
print(datetimeindex.to_period(freq='Q'))

print("\nDaily Period:")
print(datetimeindex.to_period(freq='D'))
Original DateTimeIndex:
DatetimeIndex(['2021-10-31 07:20:32.261811624',
               '2022-04-30 07:20:32.261811624',
               '2022-10-31 07:20:32.261811624'],
              dtype='datetime64[ns]', freq='6M')

Yearly Period:
PeriodIndex(['2021', '2022', '2022'], dtype='period[A-DEC]')

Quarterly Period:
PeriodIndex(['2021Q4', '2022Q2', '2022Q4'], dtype='period[Q-DEC]')

Daily Period:
PeriodIndex(['2021-10-31', '2022-04-30', '2022-10-31'], dtype='period[D]')

Conclusion

Use to_period() method to convert DateTimeIndex to Period with specified frequency. This is useful for time series analysis where you need to group data by specific time periods like months, quarters, or years.

Updated on: 2026-03-26T17:33:20+05:30

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements