我有一个dataframe
:
name
(John)
(Lily)
(Eddy)
Wang
Lisa
dataframe
的格式不正确,我需要删除括号。
返回的df
应该是:
name
John
Lily
Eddy
Wang
Lisa
我的代码是:
merge_df['name'] = merge_df['name'].replace('()','')
但是返回的df
并没有给我我想要的结果。有谁知道如何修复这段代码?
答案 0 :(得分:1)
.replace
默认情况下寻找完全匹配。您可以如下所示明确指定要使用正则表达式。
merge_df['name'].replace(regex="[()]", value="")
答案 1 :(得分:1)
根据official document,replace
函数的第一个参数是要替换的字符串。
因此,some_str.replace('()','')
意味着替换字符串中所有的()
(找不到),因此您的replace函数返回了相同的字符串。
有三种处理方法。
使用多个替换功能。
由于您一次只能替换一种子字符串,因此我们可以使用它两次以实现我们的目的。
your_str = your_str.replace('(','').replace(')','')
使用正则表达式库re.sub()
。
re.sub()
(doc)函数的功能要强大得多,它可以指定一次调用中要替换的不同子字符串。
对我来说,我更喜欢这种解决方案,因为它更加灵活和强大。
import re
your_str = re.sub(r'[\)\(]', '', your_str)
使用str.strip()
(doc)
str.strip()
函数将仅删除字符串末尾的字符,并且您还可以指定要删除的多个字符。
因此,在这种情况下,它很有用。
your_str = your_str.strip('()')