15
votes

How do I remove multiple spaces between two strings in python.

e.g:-

"Bertug 'here multiple blanks' Mete" => "Bertug        Mete"

to

"Bertug Mete" 

Input is read from an .xls file. I have tried using split() but it doesn't seem to work as expected.

import pandas as pd , string , re

dataFrame = pd.read_excel("C:\\Users\\Bertug\\Desktop\\example.xlsx")

#names1 =  ''.join(dataFrame.Name.to_string().split()) 

print(type(dataFrame.Name))

#print(dataFrame.Name.str.split())

Let me know where I'm doing wrong.

1
whats problem whit this: names1 = ' '.join(dataFrame.Name.to_string().split()) - RaminNietzsche
@Bertug please add example how your data is looks like. - Night Walker

1 Answers

32
votes

I think use replace:

df.Name = df.Name.replace('\s+', ' ', regex=True)

Sample:

df = pd.DataFrame({'Name':['Bertug     Mete','a','Joe    Black']})
print (df)
              Name
0  Bertug     Mete
1                a
2     Joe    Black

df.Name = df.Name.replace('\s+', ' ', regex=True)
#similar solution
#df.Name = df.Name.str.replace('\s+', ' ')
print (df)
          Name
0  Bertug Mete
1            a
2    Joe Black