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)。