Python 正则表达式删除1。括号内文本2.5个数字

Python 正则表达式删除1。括号内文本2.5个数字,python,regex,pandas,Python,Regex,Pandas,我似乎找不到适合我需要的正则表达式。我的数据框包含以下国家/地区: Switzerland17, Iran (Islamic Republic of), China, Hong Kong Special Administrative Region 我希望从瑞士删除17条,并删除括号内的所有文本。到目前为止,我只做到了其中一个。 Ps.:“中国、香港特别行政区”应保持不变 我当前的不完整代码: Energy['Country']=Energy['Country'].str.replace(“[^

我似乎找不到适合我需要的正则表达式。我的数据框包含以下国家/地区:

Switzerland17,
Iran (Islamic Republic of),
China, Hong Kong Special Administrative Region
我希望从瑞士删除17条,并删除括号内的所有文本。到目前为止,我只做到了其中一个。 Ps.:“中国、香港特别行政区”应保持不变 我当前的不完整代码:

Energy['Country']=Energy['Country'].str.replace(“[^a-zA-Z]”,“”)
有什么建议吗?

您可以使用

Energy['Country']=Energy['Country'].str.replace(r“\s*\([^()]*\)\124;\ d+,“”,regex=True)

如果您还需要删除数字前的可选空白,则可以将这两种模式分组在
\s*
之后:

Energy['Country']=Energy['Country'].str.replace(r“\s*(?:\([^()]*\)\124;\ d+”,“”,regex=True)

详情:

  • \s*
    -零个或多个空格
  • (?:\([^()]*\)\d+
    -一个与
    • \([^()]*\)
      -a
      ),然后是除
      之外的零个或多个字符,然后是a
    • |
      -或
    • \d+
      -一个或多个数字