为了账号安全,请及时绑定邮箱和手机立即绑定

如何删除字符之间的空格而不删除数据框中的所有空格?

如何删除字符之间的空格而不删除数据框中的所有空格?

绝地无双 2021-08-24 18:02:20
假设我有一个这样的数据框:ID    Name       Description0     Manny      V e  r y calm1     Joey       Keen and a n a l y t i c a l2     Lisa       R a s h and careless3     Ash        Always joyful我想删除Description列中每个字母之间的所有空格,而不完全删除单词之间的所有必要空格。在 Pandas 中有一个简单的方法吗?
查看完整描述

1 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

这是一个棘手的问题,但有一种方法可以让您获得大部分方法,即使用负面和正面的后视/前瞻来编码一些基本规则。


鉴于您所描述的内容,以下示例可能会很好地工作。它会错误地将连续的“真实”单词中的字符组合成单独的字符,但如果这种情况很少见,这可能没问题。您可以添加其他规则以涵盖更多边缘情况。


import re

import pandas as pd


s = pd.Series(['V e  r y calm', 'Keen and a n a l y t i c a l',

'R a s h and careless', 'Always joyful'])


regex = re.compile('(?<![a-zA-Z]{2})(?<=[a-zA-Z]{1}) +(?=[a-zA-Z] |.$)')

s.str.replace(regex, '')


0              Very calm

1    Keen and analytical

2      Rash and careless

3          Always joyful

dtype: object

这个正则表达式有效地说:


查找空格序列并替换空格,但前提是它们之前有一个字母。如果有两个字母,不要做任何事情(即一个 2 个字母的单词)。但更具体地说,实际上只有在序列中最后一个空格后面有一个字母或任何终止字符串的字符时才替换空格。


查看完整回答
反对 回复 2021-08-24
  • 1 回答
  • 0 关注
  • 245 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号