Python Pandas - Perform floor operation on the TimeDeltaIndex with hourly frequency

The TimeDeltaIndex.floor() method performs floor operation on TimeDeltaIndex, rounding down to the nearest specified frequency. For hourly frequency, use freq='H' parameter.

Creating a TimeDeltaIndex

First, let's create a TimeDeltaIndex object with various time durations ?

import pandas as pd

# Create a TimeDeltaIndex object with timedelta-like data
tdIndex = pd.TimedeltaIndex(data=['5 day 8h 20min 35us 45ns', '+17:42:19.999999',
                                  '7 day 3h 08:16:02.000055', '+22:35:25.999999'])

print("TimedeltaIndex...")
print(tdIndex)
TimedeltaIndex...
TimedeltaIndex(['5 days 08:20:00.000035045', '0 days 17:42:19.999999',
                '7 days 11:16:02.000055', '0 days 22:35:25.999999'],
               dtype='timedelta64[ns]', freq=None)

Floor Operation with Hourly Frequency

The floor operation rounds down each TimeDelta to the nearest hour ?

import pandas as pd

# Create TimeDeltaIndex
tdIndex = pd.TimedeltaIndex(data=['5 day 8h 20min 35us 45ns', '+17:42:19.999999',
                                  '7 day 3h 08:16:02.000055', '+22:35:25.999999'])

# Perform floor operation with hourly frequency
floor_result = tdIndex.floor(freq='H')
print("Floor operation with hourly frequency:")
print(floor_result)
Floor operation with hourly frequency:
TimedeltaIndex(['5 days 08:00:00', '0 days 17:00:00', '7 days 11:00:00',
                '0 days 22:00:00'],
               dtype='timedelta64[ns]', freq=None)

Complete Example

Here's a comprehensive example showing the original TimeDeltaIndex, its components, and the floor operation ?

import pandas as pd

# Create a TimeDeltaIndex object
tdIndex = pd.TimedeltaIndex(data=['5 day 8h 20min 35us 45ns', '+17:42:19.999999',
                                  '7 day 3h 08:16:02.000055', '+22:35:25.999999'])

# Display TimedeltaIndex
print("TimedeltaIndex...")
print(tdIndex)

# Show the components breakdown
print("\nThe Dataframe of the components of TimeDeltas...")
print(tdIndex.components)

# Floor operation with hourly frequency
print("\nPerforming Floor operation with hourly frequency...")
print(tdIndex.floor(freq='H'))
TimedeltaIndex...
TimedeltaIndex(['5 days 08:20:00.000035045', '0 days 17:42:19.999999',
                '7 days 11:16:02.000055', '0 days 22:35:25.999999'],
               dtype='timedelta64[ns]', freq=None)

The Dataframe of the components of TimeDeltas...
   days  hours  minutes  seconds  milliseconds  microseconds  nanoseconds
0     5      8       20        0             0            35           45
1     0     17       42       19           999           999            0
2     7     11       16        2             0            55            0
3     0     22       35       25           999           999            0

Performing Floor operation with hourly frequency...
TimedeltaIndex(['5 days 08:00:00', '0 days 17:00:00', '7 days 11:00:00',
                '0 days 22:00:00'],
               dtype='timedelta64[ns]', freq=None)

How It Works

The floor operation rounds down each time duration to the nearest hour boundary:

  • '5 days 08:20:00.000035045' becomes '5 days 08:00:00'
  • '0 days 17:42:19.999999' becomes '0 days 17:00:00'
  • '7 days 11:16:02.000055' becomes '7 days 11:00:00'
  • '0 days 22:35:25.999999' becomes '0 days 22:00:00'

Conclusion

Use TimeDeltaIndex.floor(freq='H') to round down time durations to the nearest hour. This is useful for time-based grouping and analysis operations in data processing workflows.

Updated on: 2026-03-26T17:56:08+05:30

175 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements