如何在 DataFrame 的字符串列中应用正则表达式替换?

Posted

技术标签:

【中文标题】如何在 DataFrame 的字符串列中应用正则表达式替换?【英文标题】:How do I apply a regex substitution in a string column of a DataFrame? 【发布时间】:2015-12-05 21:21:14 【问题描述】:

我有一个名为“Animals”的 DataFrame,如下所示:

 Words
 The Black Cat
 The Red Dog

我想在每个单词前添加一个加号,使其看起来像这样:

 Words
 +The +Black +Cat
 +The +Red +Dog

我已经尝试过使用正则表达式,但它不起作用:

 df = re.sub(r'([a-z]+)', r'+\1', Animals)

【问题讨论】:

【参考方案1】:

您可以使用str.replace 和以下正则表达式来更改列的所有行:

df.Words = df.Words.str.replace(r'(\b\S)', r'+\1')

DataFrame 如下所示:

>>> df
              Words
0  +The +Black +Cat
1    +The +Red +Dog

【讨论】:

很好,感谢您的解决方案。我不知道原始问题的一部分,但想知道这是否也可以用于删除单词之间的空格? @user3682157:没问题,很高兴它有帮助。要删除所有空格,您也许可以使用df.Words.str.replace(r'\s', r'')

以上是关于如何在 DataFrame 的字符串列中应用正则表达式替换?的主要内容,如果未能解决你的问题,请参考以下文章

如何在字符串列中应用正则表达式替换

如何使用 Scala 在 DataFrame 中添加新的可为空字符串列

如何从 Pyspark Dataframe 中的字符串列中过滤字母值?

从pandas DataFrame中另一列中的位置给定的字符串列中提取字符[重复]

R语言将dataframe的某个字符串列拆分为多列实战

从 pandas DataFrame 中的多个字符串列中删除子字符串