You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pandas replace正则替换无法移除DataFrame列末尾数字问题咨询

错误原因

你写的正则存在匹配范围的逻辑错误,原正则r'\d* \(.*\)'的匹配规则是强绑定结构:

  • 匹配0到多个数字
  • 数字后必须紧跟「半角空格+左括号」
  • 接着匹配任意字符直到右括号

这个规则只会处理紧挨在「空格+左括号」前面的数字,其他位置的数字完全不会被命中。你示例里残留的China2末尾的2、China, Hong Kong Special Administrative Region3末尾的3,后面都没有跟着空格+括号的结构,根本不在匹配范围内,所以替换后数字会残留。

修正方案

根据你的实际需求选对应写法即可:

  • 如果要保留原逻辑里「删除空格+括号及括号内全部内容」的规则,同时清除所有位置的数字,用下面的代码:
df_energy['Country'].replace(r'\s*\(.*\)|\d+', '', regex=True, inplace=True)
  • 如果需求是把所有数字、空白字符、半角/全角括号本身全部删掉(不处理括号内的其他内容),用下面的代码:
df_energy['Country'].replace(r'[\d\s()()]', '', regex=True, inplace=True)

内容的提问来源于stack exchange,提问作者antagonist001

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 11:12:31