Removing space from columns in pandas

PythonPandasDataframe

Python Problem Overview


I am trying to remove spaces from a dataframe I have. The columns names look like below. I am trying to get the spaces between name out and replace it with "_" wherever present.

['join_date' 'fiscal_quarter' 'fiscal_year' 'primary_channel'
 'secondary_channel' 'customer_count' 'new_members' 'revisit_next_day'
 'revisit_14_day' 'demand_1yr' 'revisit_next_day_rate'
 'revisit_14_day_rate' 'demand_1yr_per_new_member' u'ch_Ad Network'
 u'ch_Affiliate' u'ch_Branded SEM' u'ch_DSP' u'ch_Daily Email'
 u'ch_Daily Messaging' u'ch_Direct' u'ch_Direct Publisher' u'ch_Email'
 u'ch_Feeds' u'ch_Native' u'ch_Non-Branded SEM' u'ch_Organic Search'
 u'ch_Paid Social' u'ch_Site' u'ch_Special Email' u'ch_Television'
 u'ch_Trigger Email' u'ch_UNMAPPED' u'ch_Unpaid Social' u'quarter_Q2'
 u'quarter_Q3' u'quarter_Q4']

Python Solutions


Solution 1 - Python

  • To remove white spaces:
  1. To remove white space everywhere:
df.columns = df.columns.str.replace(' ', '')
  1. To remove white space at the beginning of string:
df.columns = df.columns.str.lstrip()
  1. To remove white space at the end of string:
df.columns = df.columns.str.rstrip()
  1. To remove white space at both ends:
df.columns = df.columns.str.strip()
  • To replace white spaces with other characters (underscore for instance):
  1. To replace white space everywhere
df.columns = df.columns.str.replace(' ', '_')
  1. To replace white space at the beginning:
df.columns = df.columns.str.replace('^ +', '_')
  1. To replace white space at the end:
df.columns = df.columns.str.replace(' +$', '_')
  1. To replace white space at both ends:
df.columns = df.columns.str.replace('^ +| +$', '_')

All above applies to a specific column as well, assume you have a column named col, then just do:

df[col] = df[col].str.strip()  # or .replace as above

Commands can be chained

df.columns = df.columns.str.strip().str.replace(' ', '_')

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSAM244776View Question on Stackoverflow
Solution 1 - PythonPsidomView Answer on Stackoverflow