Pandas is a Python toolkit for data analysis and manipulation that is simple, flexible, powerful, fast, and open-source. It is instrumental when dealing with large datasets for cleaning, analyzing, altering, and examining data.
The Python library for pandas allows programmers to examine enormous amounts of data and interpret or make statistical conclusions. It can quickly clean a large dataset to make it understandable, readable, and analyzeable. You can use it to create a relationship or detect a correlation between data. You can use it to conduct any mathematical operation on the data, such as sum, average, max, min, etc.
Pandas also have a data cleaning feature that allows you to eliminate undesirable or unnecessary data, NULL or empty data, and incorrect data from a dataset. You can use the pip pandas command to install it quickly. However, some Python distributions, such as Spyder and Anaconda, come with the pandas library preinstalled. As a result, if you’re using these distributors to write your code, you have to import the panda’s library into your program, and you’re ready to go.
You can now utilize the pandas’ library’s modules and functions in your program after you’ve imported the library. This tutorial will show you how to convert a DateTime to a string in Python using the Pandas package. We’ll show you how to convert DateTime to string in Python utilizing the panda’s module with some basic and easy-to-understand examples. So let’s get started.
Pandas Datetime to String
Using a date, time, or datetime object, the strftime() method returns a string representing the date and time.
Example 1: converting a datetime to a string with strftime()
The following application transforms a datetime object with the current date and time to several string formats.
from datetime import datetime now = datetime.now() # current date and time year = now.strftime("%Y") print("year:", year) month = now.strftime("%m") print("month:", month) day = now.strftime("%d") print("day:", day) time = now.strftime("%H:%M:%S") print("time:", time) date_time = now.strftime("%m/%d/%Y, %H:%M:%S") print("date and time:",date_time)
What is the working of strftime()?
The format codes in the software, as mentioned above, are %Y, % m, % d, and so on. The strftime() method accepts one or more format codes as input and produces a formatted string. The datetime class is imported from the datetime module. The strftime() method can be accessed by objects of the datetime type.
from datetime import datetime
The now variable has the datetime object holding the current date and time saved.
now = datetime.now()
To create formatted strings, use the strftime() function.
year = now.strftime("%Y")
The strftime() method accepts a string that may have several format codes.
date_time =now.strftime("%m/%d/%Y, %H:%M:%S")
Example 2: Using a timestamp to create a string
from datetime import datetime timestamp = 1528797322 date_time = datetime.fromtimestamp(timestamp) print("Date time object:", date_time) d = date_time.strftime("%m/%d/%Y, %H:%M:%S") print("Output 2:", d) d = date_time.strftime("%d %b, %Y") print("Output 3:", d) d = date_time.strftime("%d %B, %Y") print("Output 4:", d) d = date_time.strftime("%I%p") print("Output 5:", d)
Example 3: The appropriate date and time for the locale
from datetime import datetime timestamp = 1528797322 date_time = datetime.fromtimestamp(timestamp) d = date_time.strftime("%c") print("Output 1:", d) d = date_time.strftime("%x") print("Output 2:", d) d = date_time.strftime("%X") print("Output 3:", d)
The locale’s suitable date and time representation are represented using % c, % x, and % X format codes.
List of Format Codes
All of the codes passed to the strftime() method are listed below.
Directive | Meaning | Example |
%a | The weekday’s name abbreviation is | Tue, Wen, … |
%A | A complete name of the weekday. | Thursday, Friday, … |
%w | a decimal number representing a weekday | 0, 1, 2 …, 6 |
%d | Months’ Day as a zero-padded decimal. | 01, 02,03,04 …, 31 |
%-d | Month’s Day as a decimal number. | 1, 2, …, 30 |
%b | Abbreviated month name. | Jan, Feb, …, Dec |
%B | Full month name. | January, February, … |
%m | Month as a zero-padded decimal number. | 01, 02, …, 12 |
%-m | Month as a decimal number. | 1, 2,3 …, 12 |
%y | The year with no century as a decimal number with no zero-padding. | 00, 01, …, 99 |
%-y | The year with no century as a decimal number. | 0, 1, …, 99 |
%Y | The year with century representation as a decimal number. | 2015, 2022, etc. |
%H | Hour (24-hour clock) as a decimal number with zero-padding. | 00, 01,02 …, 23 |
%-H | Hour (24-hour clock) representation as a decimal number. | 0, 1,2,3 …, 23 |
%I | Hour (12-hour clock) representation as a decimal number with zero-padding. | 01, 02, 03, …, 12 |
%-I | Hour (12-hour clock) decimal number representation. | 1, 2, 3,4 … 12 |
%p | Locale’s AM or PM. | AM, PM |
%M | Minute as a decimal number with zero-padding. | 00, 01,02,03, …, 59 |
%-M | Minute decimal number representation. | 0, 1, 2, 3 …, 59 |
%S | Second, as a zero-padded decimal number. | 00, 01, 02, 03, …, 59 |
%-S | Second as a decimal number. | 0, 1, 2, 3 …, 59 |
%f | Microsecond’s decimal number representation, with left zero-padding. | 000000 – 999999 |
%z | The form +HHMM or -HHMM UTC offset. | |
%Z | represents the name of the Time zone. | |
%j | year’s day as a decimal number with zero-padding. | 001, 002, 003, …, 366 |
%-j | year’s days as a decimal number. | 1, 2,3,4, …, 366 |
%U | Year’s week number (Sunday – weeks’ first day). All days in a new year before the first Sunday are considered in week 0. | 00, 01, 02, 03, …, 53 |
%W | Year’s week number (Week’s first day as Monday ). All days in a new year before the first Monday are considered in week 0. | 00, 01, …, 53 |
%c | Locale’s appropriate date and time representation. | Mon Sep 30 07:06:05 2013 |
%x | Locale’s appropriate date representation. | 09/30/13 |
%X | Locale’s appropriate time representation. | 07:06:05 |
%% | A literal ‘%’ character. | % |
Example: Convert DateTime to String in Pandas
Let’s say we have the pandas DataFrame below, which shows the sales of a store on four special days:
import pandas as pd #create DataFrame df = pd.DataFrame({'day': pd.to_datetime(pd.Series(['20220102', '20220104', '20220108', '20220109'])), 'sales': [1540, 1945, 2584, 2390]}) #view DataFrame df The dtypes function is used to see the data type of each column in the DataFrame: #view data type of each column df.dtypes The "day" column has a DateTime class, as can be seen. We can use the following syntax to transform "day" to a string: #convert 'day' column to string df['day'] = df['day'].dt.strftime('%Y-%m-%d') #view updated DataFrame df To confirm that the "day" column is now a string, we may use the dtypes function once more: #view data type of each column df.dtypes
Example: Convert the DateTime to string
To convert the DateTime to string in this example, we’ll utilize the lambda and DataFrame.style.format() functions. Take a look at the following example command:
import pandas as pd PresentationTimeTable = ({ 'Presentations':["Health","Sleep","Writing","Technology"], 'Time' :["00:32:52","14:15:53","21:42:43","11:20:46"], 'Date':["2022/03/05","2022/03/09","2022/03/10","2022/03/07"] }) df = pd.DataFrame(PresentationTimeTable) df.style.format({"Date selected is": lambda t: t.strftime("%m/%d/%Y")})
When you run the command listed above, you will see the following output:
The result of the DataFrame.style.format() function is identical to that of the pandas.Series.dt.strftime() function, as you can see. As a result, using pandas in Python to convert a datetime to a string is simple.
Example: Convert DateTime to String
To convert DateTime to string, we use pandas.Series.dt.strftime() function in the next example. Here’s an example of code:
import pandas as pd PresentationTimeTable = ({ 'Presentations':["Health","Sleep","Writing","Technology"], 'Time' :["00:32:52","14:15:53","21:42:23","11:20:26"], 'Date':["2022/03/05","2022/03/09","2022/03/10","2022/03/07"] }) df = pd.DataFrame(PresentationTimeTable) df['DateTypeCol'] = pd.to_datetime(df.Date) df['Converted_Dates'] = df['DateTypeCol'].dt.strftime('%m/%d/%y') df
The following is the result of the code mentioned above:
If you look closely, you’ll notice that the data’s format or order has been altered, indicating that you can now enter the date in your preferred format.
Example: Using pd.to_datetime()
The pd.to_datetime() function is used in this example.
import pandas as pd PresentationTimeTable = ({ 'Presentations':["Health","Sleep","Writing","Technology"], 'Time' :["00:32:52","14:15:53","21:42:43","11:20:46"], 'Date':["2022/03/05","2022/03/09","2022/03/10","2022/03/07"] }) df = pd.DataFrame(PresentationTimeTable) df['DateTypeCol'] = pd.to_datetime(df.Date)
You’ll get the following output if you run this command:
Example: Convert a Pandas Series of datetime Objects to their String Equivalents
A Pandas Series refers to a one-dimensional array that can hold any data and labels. Let’s say you’ve got a pandas collection of datetime objects. Using the strftime() function and specific format codes, we can convert a datetime object to its string counterpart. However, converting the datetime objects of a pandas series requires a somewhat different approach. This section will discuss how such a conversion can be accomplished using examples.
Take a look at the code below. It starts by creating a pandas Series of datetime objects, transforming it into a pandas Series of string objects.
import pandas as pd dates = pd.to_datetime(pd.Series([ "01/03/2022", "02/03/2022", "03/03/2022", "04/03/2022", "05/03/2022" ]), format = '%d/%m/%Y') print("Before conversion") print(dates) print("After conversion") dates = dates.dt.strftime('%Y-%m-%d') print(dates)
Take note of the output’s dtype value. The first indicates that the series comprises datetime objects, whereas the second suggests that it contains string objects.
The lambda function is also used to change the data type of objects. For more information, see the code below. The lambda function performs the conversion using the strftime() function.
import pandas as pd dates = pd.to_datetime(pd.Series([ "01/03/2022", "02/03/2022", "03/03/2022", "04/03/2022", "05/03/2022" ]), format = '%d/%m/%Y') print("Before conversion") print(dates) print("After conversion") dates = dates.apply(lambda x: x.strftime('%Y-%m-%d')) print(dates)
Conclusion
In this article, we’ve seen three pandas routines in python used to convert DateTime to string: DataFrame.style.format(), pandas.Series.dt.strftime(), and pd.to_datetime(). We’ve supplied sample examples for each function to help you learn how to utilize them in your projects.