正则表达式和删除括号

2024-05-19 00:02:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个dataframe

name
(John)
(Lily)
(Eddy)
Wang
Lisa

dataframe的格式不正确,我需要删除括号。 返回的df应该是:

name
John
Lily
Eddy
Wang 
Lisa

我的代码是:

merge_df['name'] = merge_df['name'].replace('()','')

但是返回的df没有给出我想要的结果。有人知道如何修复这段代码吗


Tags: 代码namedataframedf格式mergejohnreplace
2条回答

根据official documentreplace函数的第一个参数是要替换的字符串。 因此,some_str.replace('()','')意味着替换字符串中未找到的所有(),因此replace函数返回相同的字符串

有三种方法可以解决这个问题

  1. 使用多个替换函数

    由于一次只能替换一种类型的子字符串,因此我们可以使用它两次来实现我们的目的

    your_str = your_str.replace('(','').replace(')','')
    
  2. 使用正则表达式库re.sub()

    re.sub()doc)函数更强大,可以在一次调用中指定要替换的不同子字符串

    对我来说,我更喜欢这个解决方案,因为它更灵活、更强大。

    import re
    your_str = re.sub(r'[\)\(]', '', your_str)
    
  3. 使用str.strip()doc

    str.strip()函数只会删除字符串末尾的字符,您还可以指定要删除的多个字符。 因此,在这种情况下,它是有用的

    your_str = your_str.strip('()')
    

默认情况下,.replace查找精确匹配。您可以显式指定要使用正则表达式,如下所示

merge_df['name'].replace(regex="[()]", value="")

相关问题 更多 >

    热门问题