Home > database >  removing whitespace from dataframe titles
removing whitespace from dataframe titles

Time:11-25

I am trying to remove whitespace from the titles of columns on a dataframe.

my_df=pd.DataFrame({'  name_1':[1, 2],'  name_2':[3, 4],}) 

After some research, i've tried:

my_df.columns.map(lstrip())
df.columns.to_series().map(lstrip)

these both give:

NameError: name 'lstrip' is not defined

even though mystr.lstrip() works fine.

how can I do this without getting the name error? and why am I getting it?

CodePudding user response:

Try:

my_df.columns = my_df.columns.str.strip()

CodePudding user response:

lstrip is a method of the str class, therefore lstrip() alone is going to produce that error while str.lstrip() or mystr.lstrip() (whit mystr being a string) won't.

So, you can use

my_df.columns.map(str.lstrip)

but because pandas has vecorized versions of the str methods under pandas.Series.str, is considered more pythonic (pandastic?) to use instead my_df.columns.str.lstrip().

As noted by @saad_saeed in their comment, using .strip() instead of .lstrip() is recommended to eliminate both trailing and leading whitespaces, which are a common source of KeyError.

  • Related