DEV Community

Cover image for Working With Time Deltas in Python
Labby for LabEx

Posted on • Originally published at labex.io

Working With Time Deltas in Python

Introduction

This lab guides you through the process of working with time deltas in Python using the pandas library. A time delta represents a duration or difference in time. We will explore different ways to construct, manipulate, and operate on time deltas.

VM Tips

After the VM startup is done, click the top left corner to switch to the Notebook tab to access Jupyter Notebook for practice.

Sometimes, you may need to wait a few seconds for Jupyter Notebook to finish loading. The validation of operations cannot be automated because of limitations in Jupyter Notebook.

If you face issues during learning, feel free to ask Labby. Provide feedback after the session, and we will promptly resolve the problem for you.

Import the Required Libraries

First, we need to import the necessary libraries. In this case, we will be using pandas and numpy.

# Import the required libraries
import pandas as pd
import numpy as np
import datetime
Enter fullscreen mode Exit fullscreen mode

Construct a Timedelta

Let's create a timedelta object, which represents a duration or difference in time.

# Construct a timedelta object
pd.Timedelta("1 days 2 hours")
Enter fullscreen mode Exit fullscreen mode

Convert to Timedelta

You can convert a scalar, array, list, or series from a recognized timedelta format into a timedelta type.

# Convert a string to a timedelta
pd.to_timedelta("1 days 06:05:01.00003")
Enter fullscreen mode Exit fullscreen mode

Perform Operations

You can perform mathematical operations on timedeltas.

# Subtract two timedeltas
s = pd.Series(pd.date_range("2012-1-1", periods=3, freq="D"))
s - s.max()
Enter fullscreen mode Exit fullscreen mode

Access Attributes

You can access various components of the timedelta directly.

# Access the days attribute of a timedelta
tds = pd.Timedelta("31 days 5 min 3 sec")
tds.days
Enter fullscreen mode Exit fullscreen mode

Convert to ISO 8601 Duration

You can convert a timedelta to an ISO 8601 Duration string.

# Convert a timedelta to an ISO 8601 Duration string
pd.Timedelta(days=6, minutes=50, seconds=3, milliseconds=10, microseconds=10, nanoseconds=12).isoformat()
Enter fullscreen mode Exit fullscreen mode

Create a Timedelta Index

You can generate an index with time deltas.

# Generate a timedelta index
pd.TimedeltaIndex(["1 days", "1 days, 00:00:05", np.timedelta64(2, "D"), datetime.timedelta(days=2, seconds=2)])
Enter fullscreen mode Exit fullscreen mode

Use the Timedelta Index

You can use the timedelta index as the index of pandas objects.

# Use the timedelta index as the index of a pandas series
s = pd.Series(np.arange(100), index=pd.timedelta_range("1 days", periods=100, freq="h"))
Enter fullscreen mode Exit fullscreen mode

Perform Operations with Timedelta Index

You can perform operations with the timedelta index.

# Add a timedelta index to a datetime index
tdi = pd.TimedeltaIndex(["1 days", pd.NaT, "2 days"])
dti = pd.date_range("20130101", periods=3)
(dti + tdi).to_list()
Enter fullscreen mode Exit fullscreen mode

Resample a Timedelta Index

You can resample data with a timedelta index.

# Resample data with a timedelta index
s.resample("D").mean()
Enter fullscreen mode Exit fullscreen mode

Summary

In this lab, we learned how to work with time deltas in Python using the pandas library. We covered how to construct a timedelta, convert to timedelta, perform operations, access attributes, convert to ISO 8601 Duration, create a timedelta index, use the timedelta index, perform operations with timedelta index, and resample a timedelta index. With these skills, you can efficiently handle and manipulate time-based data in your future data analysis tasks.


Want to learn more?

Join our Discord or tweet us @WeAreLabEx ! 😄

Top comments (0)