Python Pandas - Calculate TimedeltaArray of difference between index values and index converted to PeriodArray at specified freq


To calculate TimedeltaArray of difference between index values and index converted to PeriodArray at specified freq, use the datetimeindex.to_perioddelta() method. Set the frequency using the freq parameter.

At first, import the required libraries −

import pandas as pd

Create a DatetimeIndex with period 7 and frequency as Y i.e. year −

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

Display DateTimeIndex −

print("DateTimeIndex...\n", datetimeindex)

Calculate TimedeltaArray of difference between index values and index converted to PeriodArray. We have set the Period frequency using the "freq" parameter with value 'M' −

print("\nConvert DateTimeIndex to PeriodDelta...\n",
datetimeindex.to_perioddelta(freq='M'))

Example

Following is the code −

import pandas as pd

# DatetimeIndex with period 7 and frequency as Y i.e. year
# timezone is Australia/Adelaide
datetimeindex = pd.date_range('2021-10-18 07:20:32.261811624', periods=5, freq='2Y')

# display DateTimeIndex
print("DateTimeIndex...\n", datetimeindex)

# display DateTimeIndex frequency
print("DateTimeIndex frequency...\n", datetimeindex.freq)

# Convert DateTimeIndex to Period
# We have set the frequency as Month using the "freq" parameter with value 'M'
print("\nConvert DateTimeIndex to Period...\n",
datetimeindex.to_period(freq='M'))

# Calculate TimedeltaArray of difference between index values and index converted to PeriodArray
# We have set the Period frequency using the "freq" parameter with value 'M'
print("\nConvert DateTimeIndex to PeriodDelta...\n",
datetimeindex.to_perioddelta(freq='M'))

Output

This will produce the following code −

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>

Convert DateTimeIndex to Period...
PeriodIndex(['2021-12', '2023-12', '2025-12', '2027-12', '2029-12'], dtype='period[M]')

Convert DateTimeIndex to PeriodDelta...
TimedeltaIndex(['30 days 07:20:32.261811624', '30 days 07:20:32.261811624',
'30 days 07:20:32.261811624', '30 days 07:20:32.261811624',
'30 days 07:20:32.261811624'],
dtype='timedelta64[ns]', freq=None)

Updated on: 19-Oct-2021

150 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements