从Pandas数据框中删除空格

3

I have following dataframe

     ' A '    'B '    ' C'
0    ' 1 '    ' 2'    '3'
1     '4'     '5 6'   '7'
2     '8'     ' 9 '   '1 0'

我希望能够移除数据框中所有的空格(使用rstriplstrip),使输出结果如下所示:
     'A'    'B'    'C'
0    '1'    '2'    '3'
1    '4'    '5 6'  '7'
2    '8'    '9'    '1 0' 

我尝试使用了以下方法:

for col in data.columns:
    print (data[col].str.strip(to_strip=None))

for col in data.columns:
    print (data[col].str.ltrip(to_strip=None))   

data.columns = data.columns.str.replace(' ', '')

但没有成功。
2个回答

9
使用 pd.DataFrame.applymap 处理数据。使用 pd.DataFrame.rename 修改列名。
df.applymap(str.strip).rename(columns=str.strip)

   A    B    C
0  1    2    3
1  4  5 6    7
2  8    9  1 0

为了解释那个小引号,需要进行如下处理。
f = lambda x: "'" + x.strip("'").strip() + "'"
df.applymap(f).rename(columns=f)

   'A'    'B'    'C'
0  '1'    '2'    '3'
1  '4'  '5 6'    '7'
2  '8'    '9'  '1 0'

1
@PiyushS.Wanare 我猜你用单引号只是为了显示空格。那些单引号实际上是字符串的一部分吗?另外,“不起作用”并不足以帮助你。 - piRSquared
是的,实际上这是数据的一部分。 - Piyush S. Wanare
让我试着把它移除。 - Piyush S. Wanare
1
嗨@Dark!实际上,我认为这将消除我们想要保留的中间空格。 - piRSquared
1
哦,中间还有一个空格。没注意到。像往常一样,很棒的答案 :) - Bharath M Shetty
显示剩余2条评论

1
一个用于去除开头和结尾空格的strip替代方法。
import re
sentence = re.sub("^\s+|\s+$", "", sentence, flags=re.UNICODE)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接