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

2023-12-21

假设我有一个像这样的数据框:

ID    Name       Description
0     Manny      V e  r y calm
1     Joey       Keen and a n a l y t i c a l
2     Lisa       R a s h and careless
3     Ash        Always joyful

我想删除每个字母之间的所有空格Description列,而不完全删除单词之间的所有必要空格。

Pandas 有一个简单的方法吗?


这是一个棘手的问题,但有一种方法可以让您获得大部分的帮助,那就是使用否定和肯定的后向/前瞻来编码一些基本规则。

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

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 个字母的单词)。但更具体地说,实际上仅当序列中最后一个空格后面有字母或终止字符串的任何字符时才替换空格。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐