如何在 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 中的字符串列中过滤字母值?