How can I strip the whitespace from Pandas DataFrame headers?

I am parsing data from an Excel file that has extra white space in some of the column headings.

When I check the columns of the resulting dataframe, like so:

df.columns

The result looks like this:

Index(['Year', 'Month ', 'Value'])

Consequently, I can't run

df["Month"]

Because it will tell me the column is not found, as I asked for "Month", not "Month ".

My question, then, is how can I strip out the unwanted white space from the column headings?

You can give functions to the rename method. The str.strip() method should do what you want.

    In [5]: df
    Out[5]: 
       Year  Month   Value
    0     1       2      3

    [1 rows x 3 columns]

    In [6]: df.rename(columns=lambda x: x.strip())
    Out[6]: 
       Year  Month  Value
    0     1      2      3

    [1 rows x 3 columns]

From: stackoverflow.com/q/21606987

Back to homepage or read more recommendations: