Trim Leading & Trailing White Space in Pandas DataFrame

To trim leading and trailing whitespaces from strings in Pandas DataFrame, you can use the str.strip() function to trim leading and trailing whitespaces from strings. Here's an example:

import pandas as pd

data = {'col_1': ['  Apple  ', ' Banana', 'Orange  ', '   Grape   '],
        'col_2': ['   Red ', 'Yellow   ', '  Orange', 'Purple   ']}

df = pd.DataFrame(data)

sample data is:

col_1 col_2
0 Apple Red
1 Banana Yellow
2 Orange Orange
3 Grape Purple

Browsers usually hide extract spaces at start and end - so you can find row DataFrame data below:

         col_1      col_2
0      Apple         Red 
1       Banana  Yellow   
2     Orange       Orange
3     Grape     Purple   

1. remove spaces - whole DataFrame

To remove leading and trailing whitespaces in all columns we can:

df = df.applymap(lambda x: x.strip() if isinstance(x, str) else x)

result:

    col_1   col_2
0   Apple     Red
1  Banana  Yellow
2  Orange  Orange
3   Grape  Purple

In this example, the applymap() function is used to apply the strip() method to each element in the DataFrame. The lambda function checks if the element is a string (isinstance(x, str)) before applying the strip method to avoid errors for non-string elements.

After running this code, you'll get a DataFrame where leading and trailing whitespaces in all string columns have been removed.

2. strip spaces in single column

To remove trailing and leading spaces from a single column in Pandas DataFrame we can use:

  • Series method strip()
  • map + strip():
df['col_1'].str.strip()
df['col_1'].map(lambda x: x.strip() if isinstance(x, str) else x)

or

output:

0     Apple
1    Banana
2    Orange
3     Grape
Name: col_1, dtype: object

3. trim trailing spaces with regex

As alternative solution we an use method replace() to remove leading and trailing whitespaces.

df.replace(r"^ +| +$", r"", regex=True)

result:

    col_1   col_2
0   Apple     Red
1  Banana  Yellow
2  Orange  Orange
3   Grape  Purple

lstrip + rstrip

Pandas offers to handy methods for removing extra spaces: rstrip and lstrip:

s.str.rtrip()
s.str.ltrip()

Resources