Python Pandas - How to Round the TimeDeltaIndex with hourly frequency

To round the TimeDeltaIndex with hourly frequency, use the TimeDeltaIndex.round() method. For hourly frequency, use the freq parameter with value 'H'.

Creating a TimeDeltaIndex

At first, import the required libraries −

import pandas as pd

Create a TimeDeltaIndex object. We have set the timedelta-like data using the 'data' parameter −

import pandas as pd

tdIndex = pd.TimedeltaIndex(data=['10 day 5h 2 min 3us 10ns', '+22:39:19.999999',
                                  '2 day 4h 03:08:02.000045', '+21:15:45.999999'])

print("TimedeltaIndex...\n", tdIndex)
TimedeltaIndex...
TimedeltaIndex(['10 days 05:02:00.000003010', '0 days 22:39:19.999999',
                '2 days 07:08:02.000045', '0 days 21:15:45.999999'],
               dtype='timedelta64[ns]', freq=None)

Rounding with Hourly Frequency

Round operation on TimeDeltaIndex date with hourly frequency. For hourly frequency, we have used 'H' −

import pandas as pd

tdIndex = pd.TimedeltaIndex(data=['10 day 5h 2 min 3us 10ns', '+22:39:19.999999',
                                  '2 day 4h 03:08:02.000045', '+21:15:45.999999'])

# Display original TimeDeltaIndex
print("TimedeltaIndex...\n", tdIndex)

# Round operation with hourly frequency
rounded = tdIndex.round(freq='H')
print("\nPerforming round operation with hourly frequency...\n", rounded)
TimedeltaIndex...
TimedeltaIndex(['10 days 05:02:00.000003010', '0 days 22:39:19.999999',
                '2 days 07:08:02.000045', '0 days 21:15:45.999999'],
               dtype='timedelta64[ns]', freq=None)

Performing round operation with hourly frequency...
TimedeltaIndex(['10 days 05:00:00', '0 days 23:00:00', '2 days 07:00:00',
                '0 days 21:00:00'],
               dtype='timedelta64[ns]', freq=None)

Complete Example

Following is the complete code with components analysis −

import pandas as pd

# Create a TimeDeltaIndex object
# We have set the timedelta-like data using the 'data' parameter
tdIndex = pd.TimedeltaIndex(data=['10 day 5h 2 min 3us 10ns', '+22:39:19.999999',
                                  '2 day 4h 03:08:02.000045', '+21:15:45.999999'])

# Display TimedeltaIndex
print("TimedeltaIndex...\n", tdIndex)

# Return a dataframe of the components of TimeDeltas
print("\nThe Dataframe of the components of TimeDeltas...\n", tdIndex.components)

# Round operation on TimeDeltaIndex date with hourly frequency
# For hourly frequency, we have used 'H'
print("\nPerforming round operation with hourly frequency...\n",
      tdIndex.round(freq='H'))
TimedeltaIndex...
TimedeltaIndex(['10 days 05:02:00.000003010', '0 days 22:39:19.999999',
                '2 days 07:08:02.000045', '0 days 21:15:45.999999'],
               dtype='timedelta64[ns]', freq=None)

The Dataframe of the components of TimeDeltas...
   days  hours  minutes  seconds  milliseconds  microseconds  nanoseconds
0    10      5        2        0             0             3           10
1     0     22       39       19           999           999            0
2     2      7        8        2             0            45            0
3     0     21       15       45           999           999            0

Performing round operation with hourly frequency...
TimedeltaIndex(['10 days 05:00:00', '0 days 23:00:00', '2 days 07:00:00',
                '0 days 21:00:00'],
               dtype='timedelta64[ns]', freq=None)

How It Works

The round() method rounds each timedelta value to the nearest hour. Values with minutes ≥ 30 are rounded up, while values with minutes < 30 are rounded down. For example, '22:39:19' rounds up to '23:00:00', while '05:02:00' rounds down to '05:00:00'.

Conclusion

Use TimeDeltaIndex.round(freq='H') to round timedelta values to the nearest hour. This is useful for simplifying time duration data and aggregating by hourly intervals.

Updated on: 2026-03-26T17:54:26+05:30

218 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements