Convert string column to datetime in Pandas

Pandas

In this post, we are going to understand how to convert string columns to datetime in pandas python with the help of examples. We are going to learn about some built-in methods that it can be used on single or multiple columns.

1. pd.to_datetime() to Convert string column to datetime in Pandas


In this example, we have imported the Pandas module in python by using import pandas as pd. We are using the pandas to_datetime() method to convert a date as a string to date. Let us understand with the below example how to convert string columns to date in python.

Steps to convert string column to datetime in pandas

  • Import pandas module import pandas as pd
  • call to_datetime() method by passing the column name
  • check the type of column by using dtypes property
  • Print the final result using print() method

Python Program Example

import pandas as pd


dfobj = pd.DataFrame({'Date':['11/8/2014', '21/04/2020', '10/2/2017'],
                'Name':['rack', 'David', 'Max'],
                'Fee':[12000, 15000, 15000]})


print('before conversion :\n',dfobj.dtypes)


dfobj['Date']= pd.to_datetime(dfobj['Date'])

print('\n string to date conversion:\n',dfobj.dtypes)

Output

before conversion :
 Date    object
Name    object
Fee      int64
dtype: object

 string to date conversion:
 Date    datetime64[ns]
Name            object
Fee              int64
dtype: object

2. pd.to_datetime() to convert string to datetime specific format


In the above example, we have used the pandas to_datetime() method to convert a given string date to date. Sometimes need to convert a date to a specific format so we can use to_datetime() method format argument to specific in which format we want to convert a date. So in the below example, we have passed format=’%Y%m%d.

Important Note :The given string date must match with a specific date format otherwise exception will raise.

Python Program Example

import pandas as pd


dfobj = pd.DataFrame({'Date':['20210812', '20210813', '20200810'],
                'Name':['rack', 'David', 'Max'],
                'Fee':[12000, 15000, 15000]})





dfobj['Date']= pd.to_datetime(dfobj['Date'],format='%Y%m%d')

print(dfobj)

print('\n string to date conversion:\n',dfobj.dtypes)


Output

        Date   Name    Fee
0 2021-08-12   rack  12000
1 2021-08-13  David  15000
2 2020-08-10    Max  15000

string to date conversion:
 Date    datetime64[ns]
Name            object
Fee              int64
dtype: object

3.Convert multiple columns to date in Pandas


In this example instead of single, we are converting multiple columns in which date is given as string to date by using the to_datetime() to specific format by passing the format = ‘%Y%m%d’.

Python Program to convert multiple columns to in Pandas

import pandas as pd


dfobj = pd.DataFrame({'JoinDate':['20210812', '20210813', '20200810'],                      
                'Name':['rack', 'David', 'Max'],
                'Fee':[12000, 15000, 15000],
                'BirthDate':['20210812', '20210813', '20200810']})





dfobj['JoinDate']= pd.to_datetime(dfobj['JoinDate'],format='%Y%m%d')
dfobj['BirthDate']= pd.to_datetime(dfobj['BirthDate'],format='%Y%m%d')

print(dfobj)

print('\n string to date conversion:\n',dfobj.dtypes)


Output

    JoinDate   Name    Fee  BirthDate
0 2021-08-12   rack  12000 2021-08-12
1 2021-08-13  David  15000 2021-08-13
2 2020-08-10    Max  15000 2020-08-10

string to date conversion:
JoinDate     datetime64[ns]
Name                 object
Fee                   int64
BirthDate    datetime64[ns]
dtype: object

4.Datafrmae.astype() to Convert string column to datetime


In this example we are using astype() method of python pandas datetframe to convert given date as string to date. The astype() takes a type as an argument and change the column to passed type herein below example we are passed datetime64[ns] as a type from the date column.

Python Program

import pandas as pd


dfobj = pd.DataFrame({'Date':['11/8/2014', '21/04/2020', '10/2/2017'],
                'Name':['rack', 'David', 'Max'],
               'BirthDate':['20210812', '20210813', '20200810'],
                'Fee':[12000, 15000, 15000]})

                })


print('before conversion :\n',dfobj.dtypes)




dfobj['Date']= dfobj['Date'].astype('datetime64[ns]')
dfobj['BirthDate']= dfobj['BirthDate'].astype('datetime64[ns]')

print('\n after conversion:\n',dfobj.dtypes)

Output

before conversion :
 Date    object
Name    object
Fee      int64
dtype: object

 after conversion:
 Date    datetime64[ns]
Name            object
Fee              int64
dtype: object

5. Datafrmae.astype() to Convert string mutiple columns to datetime


In this example we are using astype() method of python pandas datetframe to convert multiple given date as string column to date.

Python Program

import pandas as pd


dfobj = pd.DataFrame({'Date':['11/8/2014', '21/04/2020', '10/2/2017'],
                'Name':['rack', 'David', 'Max'],
               'BirthDate':['20210812', '20210813', '20200810'],
                'Fee':[12000, 15000, 15000]})




dfobj['Date']= dfobj['Date'].astype('datetime64[ns]')
dfobj['BirthDate']= dfobj['BirthDate'].astype('datetime64[ns]')

print(dfobj)

print('\n after conversion:\n',dfobj.dtypes)


Output

        Date   Name  BirthDate    Fee
0 2014-11-08   rack 2021-08-12  12000
1 2020-04-21  David 2021-08-13  15000
2 2017-10-02    Max 2020-08-10  15000

 after conversion:
 Date         datetime64[ns]
Name                 object
BirthDate    datetime64[ns]
Fee                   int64
dtype: object

Summary

In this post we have learned 5 ways of how to Convert string column to datetime in Pandas using pandas pd.to_datetime() method and dataframe.astype() that can be used with single or multiple columns.