Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
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.
