我有一个巨大的DataFrame,其列有一个名称列表。这些名称附有数字和括号。我试图将它们从名字中剥离出来。我发现适用于此的方法是:
df.Name = df.Name.str.replace(r'[\(\)\d]+', '')
有人可以帮我理解替换功能中的语法吗?
(r'[\(\)\d]+', '')
答案 0 :(得分:5)
有人可以帮我理解替换功能中的语法吗?
你看到的是一个正则表达式。正则表达式具有特殊语法来指定 patterns 。
在此正则表达式中, [...]
表示字符组 。此处的字符组中包含\(
(空心括号),\)
(结束括号)和\d
(数字)。
最后的 +
表示" 一个或多个" ,所以我们指定pattern由字符组中字符的 sequence 组成。因此像'142(2'
这样的字符串将匹配正则表达式。
使用空字符串替换字符串中匹配的所有子字符串,以便删除。
构建,测试和修复正则表达式的有用工具是regex101。如果您按照链接进行操作,则可以指定正则表达式,并查看与所描述的模式匹配的字符串。在右侧有一个小组,旨在用自然语言解释模式正在做什么。
此外,还有regex visualizer显示了正则表达式的结构:
子字符串"匹配"如果您可以沿着铁路行驶直到您到达目的地,那么只要有一个开放的支架,右侧支架或一个数字,我们就可以继续穿过灰色的箱子,直到我们决定到达终点。