datetime to timedelta in pandas DataFrame & Vice Versa in Python (Examples)

 

In this article you’ll learn how to convert datetime to timedelta in a pandas DataFrame and vice versa in the Python programming language.

The tutorial looks as follows:

Here’s how to do it:

 

Example Data & Libraries

First, let’s load the pandas library and the datetime module:

import pandas as pd                                                                 # importing pandas library
import datetime                                                                     # importing datetime module

Next, let’s also create some example data in Python:

df = pd.DataFrame.from_dict({"col_1" : [datetime.datetime(2000, 10, 8, 15, 21, 5),  # DataFrame initialization
                                        datetime.datetime(2005, 2, 8, 18, 21, 5),
                                        datetime.datetime(2010, 5, 8, 3, 10, 19),
                                        datetime.datetime(2017, 7, 8, 8, 4, 2)]})
print(df)                                                                           # printing DataFrame
#                col_1
#0 2000-10-08 15:21:05
#1 2005-02-08 18:21:05
#2 2010-05-08 03:10:19
#3 2017-07-08 08:04:02

Since we have our DataFrame of datetime objects, we can move on to the examples now.

 

Example 1: Convert a Column of datetime Objects to timedelta

Since the timedelta objects are meant to show the difference between two dates, first we need to create a datetime object for a random date. See dt_origin below.

dt_origin = datetime.datetime(2000, 1, 1, 0, 0, 0)                                  # start_date initialization

Now we can simply define our function which subtracts the two datetime objects to generate a timedelta object.

def datetime_to_timedelta(dt):                                                      # defining the dt to td function
    return dt - dt_origin                                                           # generating and returning the timedelta object

After defining our function, we can plug it into the apply() function to convert the datetime objects in col_1 to the timedelta objects in col_2.

df["col_2"] = df["col_1"].apply(lambda dt: datetime_to_timedelta(dt))               # creating the column of timedelta objects
print(df)                                                                           # printing the updated DataFrame
#                col_1              col_2
#0 2000-10-08 15:21:05  281 days 15:21:05
#1 2005-02-08 18:21:05 1865 days 18:21:05
#2 2010-05-08 03:10:19 3780 days 03:10:19
#3 2017-07-08 08:04:02 6398 days 08:04:02

 

Example 2: Convert a Column of timedelta Objects to datetime

In this case, we do the same thing but in reverse order. We add dt_origin to the td values to get the datetime objects in the beginning.

def timedelta_to_datetime(td):                                                      # defining the td to dt function
    dt = dt_origin + td                                                             # generating the datetime object
    return dt                                                                       # returning the datetime object

After defining the function timedelta_to_datetime(), we can plug it into the apply() function to convert the timedelta objects in col_2 to the datetime objects in col_3. Please be aware that we obtained an identical column with column col_1.

df["col_3"] = df["col_2"].apply(lambda td: timedelta_to_datetime(td))               # creating the column of timedelta objects
print(df)                                                                           # printing the updated DataFrame
#                col_1              col_2               col_3
#0 2000-10-08 15:21:05  281 days 15:21:05 2000-10-08 15:21:05
#1 2005-02-08 18:21:05 1865 days 18:21:05 2005-02-08 18:21:05
#2 2010-05-08 03:10:19 3780 days 03:10:19 2010-05-08 03:10:19
#3 2017-07-08 08:04:02 6398 days 08:04:02 2017-07-08 08:04:02

 

Video, Further Resources & Summary

Do you need further information on the Python programming codes of this article? Then you may want to have a look at the following video on my YouTube channel. I demonstrate the Python programming codes of this tutorial in the video.

 

The YouTube video will be added soon.

 

Furthermore, you might want to have a look at some of the other tutorials on my website:

 

In summary: In this tutorial, I have explained how to transform datetime objects to timedelta objects in a pandas DataFrame and back in the Python programming language. Don’t hesitate to let me know in the comments below, in case you have any additional questions.

 

Ömer Ekiz Python Programming & Informatics

This page was created in collaboration with Ömer Ekiz. Have a look at Ömer’s author page to get more information about his professional background, a list of all his tutorials, as well as an overview on his other tasks on Statistics Globe.

 

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.

The maximum upload file size: 2 MB. You can upload: image. Drop file here

Top