Python Pandas - Create a Series from TimeDeltaIndex and set the index of the resulting Series

The to_series() method converts a TimeDeltaIndex into a Pandas Series. This is useful when you need to perform Series-specific operations or when you want to customize the index labels of the resulting Series.

Basic TimeDeltaIndex to Series Conversion

First, let's create a TimeDeltaIndex and convert it to a Series without specifying an index ?

import pandas as pd

# Create a TimeDeltaIndex
td_index = pd.TimedeltaIndex(['1 day', '2 hours', '30 minutes'])
print("Original TimeDeltaIndex:")
print(td_index)

# Convert to Series (uses default integer index)
series = td_index.to_series()
print("\nConverted Series:")
print(series)
Original TimeDeltaIndex:
TimedeltaIndex(['1 days 00:00:00', '0 days 02:00:00', '0 days 00:30:00'],
               dtype='timedelta64[ns]', freq=None)

Converted Series:
0   1 days 00:00:00
1   0 days 02:00:00
2   0 days 00:30:00
dtype: timedelta64[ns]

Setting Custom Index Labels

You can specify custom index labels using the index parameter ?

import pandas as pd

# Create a TimeDeltaIndex with complex timedelta expressions
td_index = 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:")
print(td_index)

# Convert to Series with custom index labels
custom_series = td_index.to_series(index=['Duration1', 'Duration2', 'Duration3', 'Duration4'])
print("\nSeries with custom index:")
print(custom_series)
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)

Series with custom index:
Duration1   10 days 05:02:00.000003010
Duration2    0 days 22:39:19.999999
Duration3     2 days 07:08:02.000045
Duration4     0 days 21:15:45.999999
dtype: timedelta64[ns]

Exploring TimeDeltaIndex Components

You can analyze the components of a TimeDeltaIndex before converting to Series ?

import pandas as pd

td_index = pd.TimedeltaIndex(['10 day 5h 2 min', '22:39:19', '2 day 7h 8m'])

print("TimeDeltaIndex components:")
print(td_index.components)

print("\nAs Python timedelta objects:")
print(td_index.to_pytimedelta())
TimeDeltaIndex components:
   days  hours  minutes  seconds  milliseconds  microseconds  nanoseconds
0    10      5        2        0             0             0            0
1     0     22       39       19             0             0            0
2     2      7        8        0             0             0            0

As Python timedelta objects:
[datetime.timedelta(days=10, seconds=18120)
 datetime.timedelta(seconds=81559)
 datetime.timedelta(days=2, seconds=25680)]

Practical Use Cases

Converting TimeDeltaIndex to Series is useful for:

  • Data analysis ? Apply Series methods like sum(), mean(), etc.
  • Custom indexing ? Use meaningful labels instead of numeric indices
  • Integration ? Combine with DataFrames or other Series objects
import pandas as pd

# Create TimeDeltaIndex for task durations
tasks = pd.TimedeltaIndex(['2 hours', '45 minutes', '1 hour 30 minutes'])
task_series = tasks.to_series(index=['Setup', 'Development', 'Testing'])

print("Task durations:")
print(task_series)
print(f"\nTotal project time: {task_series.sum()}")
print(f"Average task time: {task_series.mean()}")
Task durations:
Setup          0 days 02:00:00
Development    0 days 00:45:00
Testing        0 days 01:30:00
dtype: timedelta64[ns]

Total project time: 0 days 04:15:00
Average task time: 0 days 01:25:00

Conclusion

Use to_series() to convert TimeDeltaIndex to Series for enhanced data manipulation. The index parameter allows you to set meaningful labels, making your time-based data more readable and accessible.

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

348 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements