Open In App

Python | Pandas.to_datetime()

Improve
Improve
Like Article
Like
Save
Share
Report

When a CSV file is imported and a Data Frame is made, the Date time objects in the file are read as a string object rather than a Date Time object Hence it’s very tough to perform operations like Time difference on a string rather than a Date Time object. Pandas to_datetime() method helps to convert string Date time into Python Date time object.

Pandas.to_datetime() Syntax

Syntax: pandas.to_datetime(arg, errors=’raise’, dayfirst=False, yearfirst=False, utc=None, box=True, format=None, exact=True, unit=None, infer_datetime_format=False, origin=’unix’, cache=False)

Parameters:

  1. arg: An integer, string, float, list or dict object to convert in to Date time object.
  2. dayfirst: Boolean value, places day first if True.
  3. yearfirst: Boolean value, places year first if True.
  4. utc: Boolean value, Returns time in UTC if True.
  5. format: String input to tell position of day, month and year.

Return type: Datetime

Pandas.to_datetime() in Pandas Example

Pandas to_datetime() is used to convert different data types into datetime objects. We will see different examples on how to use it:

Convert a Pandas String to Datetime

To convert date and time data saved as texts into datetime objects, use Pandas.to_datetime(). The format consists of the date and time.

Python3




import pandas as pd
 
# date string
d_string = "2023-09-17 14:30:00"
 
# Convert the string to datetime
dt_obj = pd.to_datetime(d_string)
 
print(dt_obj)


Output:

2023-09-17 14:30:00

Convert Pandas Numerical values to Datetime

The datetime objects can be created from numerical numbers that represent time, such as seconds since the Unix epoch. We can specify the unit of the input data by using the unit argument.

Python3




import pandas as pd
 
# Sample numerical value representing seconds since the Unix epoch
unix_timestamp = 1721700500
 
# Convert to datetime using 's' (seconds) as the unit
dt_obj = pd.to_datetime(unix_timestamp, unit='s')
 
print(dt_obj)


Output:

2024-07-23 02:08:20

Convert Pandas Column to DateTime

This will explain how to work with date and time data using the Pandas library. The main objective is to transform date and time information from a CSV file into a format that makes analysis easier to understand and more useful.

For the link to the CSV file used, click here.

Example 1: Converting Date Format using Pandas

String to Date In the following example, a csv file is read and the date column of Data frame is converted into Date Time object from a string object.

Python3




# Importing the pandas package
import pandas as pd
 
# Making a data frame from a CSV file
data = pd.read_csv('/content/todatetime.csv')
 
# Overwriting data after changing the 'Date' format
data['Date'] = pd.to_datetime(data['Date'])  # Corrected: Added quotes around 'Date'
 
# Info of the data
data.info()
 
# Display the data
print(data.head())


Output:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1000 entries, 0 to 999
Data columns (total 2 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Date 1000 non-null datetime64[ns]
1 Time 1000 non-null object
dtypes: datetime64[ns](1), object(1)
memory usage: 15.8+ KB
Date Time
0 1993-08-06 12:42 PM
1 1996-03-31 6:53 AM
2 1993-04-23 11:17 AM
3 2005-03-04 1:00 PM
4 1998-01-24 4:47 PM

As shown in the image, the Data Type of Date column was object but after using to_datetime(), it got converted into a date time object.

Example 2: Converting Time Format using Pandas

Exception while converting Time object can also be converted with this method. But since in the Time column, a date isn’t specified and hence Pandas will put Today’s date automatically in that case.

Python3




# importing pandas package
import pandas as pd
 
# making data frame from csv file
data = pd.read_csv('/content/todatetime.csv')
 
# overwriting data after changing format
data['Time']= pd.to_datetime(data['Time'])
 
# info of data
data.info()
 
# display
print(data.head())


Output:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1000 entries, 0 to 999
Data columns (total 2 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Date 1000 non-null object
1 Time 1000 non-null datetime64[ns]
dtypes: datetime64[ns](1), object(1)
memory usage: 15.8+ KB
Date Time
0 8/6/1993 2023-10-12 12:42:00
1 3/31/1996 2023-10-12 06:53:00
2 4/23/1993 2023-10-12 11:17:00
3 3/4/2005 2023-10-12 13:00:00
4 1/24/1998 2023-10-12 16:47:00

As shown in the output, a date (2018-07-07) that is Today’s date is already added with the Date time object.



Last Updated : 04 Dec, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads