How to Add Leading Zeros to Strings in Pandas


You can use the following syntax to add leading zeros to strings in a pandas DataFrame:

df['ID'] = df['ID'].apply('{:0>7}'.format)

This particular formula adds as many leading zeros as necessary to the strings in the column titled ‘ID’ until each string has a length of 7.

Feel free to replace the 7 with another value to add a different number of leading zeros.

The following example shows how to use this syntax in practice.

Example: Add Leading Zeros to Strings in Pandas

Suppose we have the following pandas DataFrame that contains information about sales and refunds for various stores:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'ID': ['A25', 'B300', 'C6', 'D447289', 'E416', 'F19'],
                   'sales': [18, 12, 27, 30, 45, 23],
                   'refunds': [1, 3, 3, 2, 5, 0]})

#view DataFrame
print(df)

        ID  sales  refunds
0      A25     18        1
1     B300     12        3
2       C6     27        3
3  D447289     30        2
4     E416     45        5
5      F19     23        0

Notice that the length of the strings in the ‘ID’ column are not all equal.

However, we can see that the longest string is 7 characters.

We can use the following syntax to add leading zeros to the strings in the ‘ID’ column so that each string has a length of 7:

#add leading zeros to 'ID' column
df['ID'] = df['ID'].apply('{:0>7}'.format)

#view updated DataFrame
print(df)

        ID  sales  refunds
0  0000A25     18        1
1  000B300     12        3
2  00000C6     27        3
3  D447289     30        2
4  000E416     45        5
5  0000F19     23        0

Notice that leading zeros have been added to the strings in the ‘ID’ column so that each string now has the same length.

Note: You can find the complete documentation for the apply function in pandas here.

Additional Resources

The following tutorials explain how to perform other common tasks in pandas:

How to Impute Missing Values in Pandas
How to Count Missing Values in Pandas
How to Fill NaN Values with Mean in Pandas

Leave a Reply

Your email address will not be published.