Python 正则表达式和删除括号

Python 正则表达式和删除括号,python,regex,pandas,dataframe,Python,Regex,Pandas,Dataframe,我有一个数据帧: name (John) (Lily) (Eddy) Wang Lisa dataframe的格式不正确,我需要删除括号。 返回的df应为: name John Lily Eddy Wang Lisa 我的代码是: merge_df['name'] = merge_df['name'].replace('()','') 但是返回的df没有给出我想要的结果。有人知道如何修复这段代码吗?.replace默认情况下是查找精确匹配。您可以显式指定要使用正则表达式,如下所示 mer

我有一个
数据帧

name
(John)
(Lily)
(Eddy)
Wang
Lisa
dataframe
的格式不正确,我需要删除括号。 返回的
df
应为:

name
John
Lily
Eddy
Wang 
Lisa
我的代码是:

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

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

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

merge_df['name'].替换(regex=“[()]”,value=”“)

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

merge_df['name'].替换(regex=“[()]”,value=”“)
根据,替换函数的第一个参数是要替换的字符串。 因此,
some_str.replace(“()”,“)
意味着替换字符串中未找到的所有
()
,因此replace函数返回相同的字符串

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

  • 使用多个替换函数

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

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

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

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

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

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

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

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

  • 使用多个替换函数

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

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

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

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

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

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

    your_str = your_str.strip('()')
    

  • @MZ不需要在
    ()
    内部逃逸
    []
    它们在那里特别松动meaning@MZ无需逃避
    ()
    内部
    []
    它们在那里散开,这是一个很好的答案。然而,我会建议一种相反的偏好:从简单开始(例如
    strip
    replace
    ),只有在您知道需求很快就会存在时才求助于更高级的工具(例如regex)。这是一个很好的答案。然而,我建议将偏好倒置:从简单开始(例如
    strip
    replace
    ),只有当您知道需求很快就会存在时,才求助于更高级的工具(例如regex)。