Pandas:替换函数语法

时间:2017-04-01 21:08:05

标签: python regex pandas

我有一个巨大的DataFrame,其列有一个名称列表。这些名称附有数字和括号。我试图将它们从名字中剥离出来。我发现适用于此的方法是:

df.Name = df.Name.str.replace(r'[\(\)\d]+', '')

有人可以帮我理解替换功能中的语法吗?

(r'[\(\)\d]+', '')

1 个答案:

答案 0 :(得分:5)

  

有人可以帮我理解替换功能中的语法吗?

你看到的是一个正则表达式。正则表达式具有特殊语法来指定 patterns

在此正则表达式中, [...]表示字符组 。此处的字符组中包含\((空心括号),\)(结束括号)和\d(数字)。

最后的 + 表示" 一个或多个" ,所以我们指定pattern由字符组中字符的 sequence 组成。因此像'142(2'这样的字符串将匹配正则表达式。

使用空字符串替换字符串中匹配的所有子字符串,以便删除

构建,测试和修复正则表达式的有用工具是regex101。如果您按照链接进行操作,则可以指定正则表达式,并查看与所描述的模式匹配的字符串。在右侧有一个小组,旨在用自然语言解释模式正在做什么。

此外,还有regex visualizer显示了正则表达式的结构:

visualization of the regex

子字符串"匹配"如果您可以沿着铁路行驶直到您到达目的地,那么只要有一个开放的支架,右侧支架或一个数字,我们就可以继续穿过灰色的箱子,直到我们决定到达终点。