如何使用Pandas移除字符串末尾任意内容的括号子串?
移除Pandas DataFrame字符串末尾的括号组
现有如下Pandas DataFrame:
NameID 0 Mandalapu Harish (MH) (34567) 1 Roopa S (RS) (7861) 2 Geetha Harish (GH A) (9234178)
需要移除每行字符串末尾的那组括号(包含里面的数字),得到如下结果:
Name 0 Mandalapu Harish (MH) 1 Roopa S (RS) 2 Geetha Harish (GH A)
解决方案
- 方法1:用
str.rsplit分割截取
利用从右侧按空格分割一次的方式,直接取前半部分内容:
df['Name'] = df['NameID'].str.rsplit(' ', 1).str[0]
- 方法2:正则替换
str.replace
用正则匹配末尾的「空格+括号+数字」组合,直接替换为空:
df['Name'] = df['NameID'].str.replace(r'\s\(\d+\)$', '', regex=True)
- 方法3:正则提取
str.extract
直接捕获末尾括号组之前的所有内容:
df['Name'] = df['NameID'].str.extract(r'(.*)\s\(\d+\)$', expand=False)
内容的提问来源于stack exchange,提问作者Mandalapu Harish
相关产品推荐
相关产品推荐

