pandas 删除字符串末尾带有括号的子字符串,与内容无关

ncecgwcz  于 2023-03-28  发布在  其他
关注(0)|答案(2)|浏览(129)

我的dataframe是:

NameID
0   Mandalapu Harish (MH) (34567)
1             Roopa S (RS) (7861)
2  Geetha Harish (GH A) (9234178)

我如何使用pandas删除最后一组括号?

Name
0  Mandalapu Harish (MH)
1           Roopa S (RS)
2   Geetha Harish (GH A)
6tdlim6h

6tdlim6h1#

使用str.replace

df['Name'] = df['NameID'].str.replace(r'\s*\([^)]+\)$', '', regex=True)
  • 注意,如果要删除NameID列,请使用df['Name'] = df.pop('NameID').str.replace(r'\s*\([^)]+\)$', '', regex=True)。*

输出:

NameID                   Name
0   Mandalapu Harish (MH) (34567)  Mandalapu Harish (MH)
1             Roopa S (RS) (7861)           Roopa S (RS)
2  Geetha Harish (GH A) (9234178)   Geetha Harish (GH A)
6kkfgxo0

6kkfgxo02#

另一种可能的解决方案基于pandas.Series.str.rsplit

df['NameID'].str.rsplit(n=1).str[0]

输出:

0    Mandalapu Harish (MH)
1             Roopa S (RS)
2     Geetha Harish (GH A)
Name: NameID, dtype: object

相关问题