Python Pandas - Round a DateTimeIndex with frequency as multiples of a single unit

To round a DateTimeIndex with frequency as multiples of a single unit, use the DateTimeIndex.round() method. The freq parameter accepts multipliers like '10T' for 10 minutes or '30S' for 30 seconds.

Syntax

DateTimeIndex.round(freq)

Where freq is the frequency string with optional multiplier (e.g., '10T', '5H', '30S').

Creating a DateTimeIndex

First, let's create a DateTimeIndex with precise timestamps ?

import pandas as pd

# DatetimeIndex with period 5 and frequency as H i.e. hours
# timezone is Australia/Adelaide
datetimeindex = pd.date_range('2021-09-29 07:20:32.261811624', periods=5,
                              tz='Australia/Adelaide', freq='H')

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

# Display DateTimeIndex frequency
print("DateTimeIndex frequency...\n", datetimeindex.freq)
DateTimeIndex...
DatetimeIndex(['2021-09-29 07:20:32.261811624+09:30',
               '2021-09-29 08:20:32.261811624+09:30',
               '2021-09-29 09:20:32.261811624+09:30',
               '2021-09-29 10:20:32.261811624+09:30',
               '2021-09-29 11:20:32.261811624+09:30'],
              dtype='datetime64[ns, Australia/Adelaide]', freq='H')
DateTimeIndex frequency...
<Hour>

Rounding with Multiple Unit Frequency

Round the DateTimeIndex to 10-minute intervals using '10T' frequency ?

import pandas as pd

datetimeindex = pd.date_range('2021-09-29 07:20:32.261811624', periods=5,
                              tz='Australia/Adelaide', freq='H')

# Round a DateTimeIndex with 10 minutes frequency i.e. multiples of a single unit
# For minutes frequency, we use 'T'
rounded_index = datetimeindex.round(freq='10T')
print("Performing round operation with multiples of a single unit frequency...\n", rounded_index)
Performing round operation with multiples of a single unit frequency...
DatetimeIndex(['2021-09-29 07:20:00+09:30', '2021-09-29 08:20:00+09:30',
               '2021-09-29 09:20:00+09:30', '2021-09-29 10:20:00+09:30',
               '2021-09-29 11:20:00+09:30'],
              dtype='datetime64[ns, Australia/Adelaide]', freq=None)

Common Frequency Multipliers

Here are examples of different frequency multipliers you can use ?

import pandas as pd

# Create DateTimeIndex with more precise timestamps
datetimeindex = pd.date_range('2021-09-29 07:23:45.123456', periods=3, freq='17T')
print("Original DateTimeIndex:")
print(datetimeindex)

print("\nRounding to 30 seconds (30S):")
print(datetimeindex.round('30S'))

print("\nRounding to 5 minutes (5T):")
print(datetimeindex.round('5T'))

print("\nRounding to 2 hours (2H):")
print(datetimeindex.round('2H'))
Original DateTimeIndex:
DatetimeIndex(['2021-09-29 07:23:45.123456', '2021-09-29 07:40:45.123456',
               '2021-09-29 07:57:45.123456'],
              dtype='datetime64[ns]', freq='17T')

Rounding to 30 seconds (30S):
DatetimeIndex(['2021-09-29 07:23:30', '2021-09-29 07:40:30',
               '2021-09-29 07:57:30'],
              dtype='datetime64[ns]', freq=None)

Rounding to 5 minutes (5T):
DatetimeIndex(['2021-09-29 07:25:00', '2021-09-29 07:40:00',
               '2021-09-29 08:00:00'],
              dtype='datetime64[ns]', freq=None)

Rounding to 2 hours (2H):
DatetimeIndex(['2021-09-29 08:00:00', '2021-09-29 08:00:00',
               '2021-09-29 08:00:00'],
              dtype='datetime64[ns]', freq=None)

Conclusion

Use DateTimeIndex.round() with frequency multipliers like '10T', '30S', or '2H' to round timestamps to specific intervals. This is useful for data aggregation and time-based grouping operations.

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

178 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements