Convert the column type from string to datetime format in Pandas dataframe




In this tutorial, we will explore how to convert a column of string values to datetime format in a Pandas DataFrame.
This is useful when dealing with date or time information stored as strings and needing to perform operations or analysis based on the actual datetime values.

Method 1: Using the to_datetime() Function

The to_datetime() function in Pandas allows us to convert a column to datetime format by specifying the column name and the desired format.
Here is an example:

import pandas as pd

# Create a sample DataFrame
df = pd.DataFrame({'date_column': ['2023-05-20', '2023-05-21', '2023-05-22']})

# Convert the 'date_column' to datetime format
df['date_column'] = pd.to_datetime(df['date_column'])

# Display the updated DataFrame
print(df)

Method 2: Using the astype() Method

Another way to convert the column type is by using the astype() method and specifying the target type as ‘datetime’.
Here is an example:

import pandas as pd

# Create a sample DataFrame
df = pd.DataFrame({'date_column': ['2023-05-20', '2023-05-21', '2023-05-22']})

# Convert the 'date_column' to datetime format
df['date_column'] = df['date_column'].astype('datetime64')

# Display the updated DataFrame
print(df)

Method 3: Using the apply() Method with a Custom Function

If you need more flexibility, you can use the apply() method along with a custom function to convert the column values.
This allows you to handle specific date formats or perform additional transformations as needed.
Here is an example:

import pandas as pd

# Create a sample DataFrame
df = pd.DataFrame({'date_column': ['05-20-2023', '05-21-2023', '05-22-2023']})

# Define a custom function to convert the date format
def convert_to_datetime(date_str):
    return pd.to_datetime(date_str, format='%m-%d-%Y')

# Apply the custom function to the 'date_column'
df['date_column'] = df['date_column'].apply(convert_to_datetime)

# Display the updated DataFrame
print(df)

Method 4: Using the pd.to_datetime() Function with Format Specifiers

The pd.to_datetime() function also supports format specifiers that allow you to parse datetime strings with specific formats.
This method is useful when your date strings have a non-standard format that is not recognized by default.
Here is an example:

import pandas as pd

# Create a sample DataFrame
df = pd.DataFrame({'date_column': ['20-05-2023', '21-05-2023', '22-05-2023']})

# Convert the 'date_column' to datetime format using format specifiers
df['date_column'] = pd.to_datetime(df['date_column'], format='%d-%m-%Y')

# Display the updated DataFrame
print(df)

Method 5: Using the dateutil.parser.parse() Function

The dateutil.parser.parse() function provides a powerful way to parse various date and time string formats automatically.
It can handle a wide range of formats, including those with different separators or variations in the order of date components.
Here is an example:

import pandas as pd
from dateutil.parser import parse

# Create a sample DataFrame
df = pd.DataFrame({'date_column': ['2023/05/20', '05-21-2023', 'May 22, 2023']})

# Convert the 'date_column' to datetime format using dateutil.parser.parse()
df['date_column'] = df['date_column'].apply(parse)

# Display the updated DataFrame
print(df)

Method 6: Using the pd.to_datetime() Function with Errors=’coerce’

Sometimes, your date strings may contain invalid or missing values.
By setting the errors parameter to ‘coerce’ in the pd.to_datetime() function, you can convert the valid dates while replacing the invalid or missing values with NaT (Not a Time) in the resulting DataFrame.
Here is an example:

import pandas as pd

# Create a sample DataFrame with invalid and missing date strings
df = pd.DataFrame({'date_column': ['2023-05-20', 'invalid_date', '2023-05-22', 'missing_date']})

# Convert the 'date_column' to datetime format with 'coerce' option
df['date_column'] = pd.to_datetime(df['date_column'], errors='coerce')

# Display the updated DataFrame
print(df)

Last Updated on May 18, 2023 by admin

Leave a Reply

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

Recommended Blogs