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

如何在Pandas中使用通配符去除列字符串左右两侧冗余字符

解决方案

方案1:使用str.extract直接提取目标内容(推荐)

你的col4结构固定为[动态数字].UNITED STATES.[球队名].NBA.csv,直接用正则捕获目标球队名即可,性能高且匹配精准,适配大型DataFrame处理:

df['col4'] = df['col4'].str.extract(r'UNITED STATES\.([A-Z]+)\.NBA')

正则逻辑:

  • 匹配固定前缀UNITED STATES.(.是正则特殊字符,需要用\转义)
  • 捕获后续连续的大写字母(即球队名称部分)
  • 匹配固定后缀.NBA,避免误匹配其他内容

方案2:使用str.replace一次性清除两侧冗余

如果习惯用替换逻辑实现,可通过正则同时匹配左右两侧冗余内容替换为空:

df['col4'] = df['col4'].str.replace(r'^.*UNITED STATES\.|\.NBA.*$', '', regex=True)

正则逻辑:

  • ^.*UNITED STATES\.:匹配从字符串开头到UNITED STATES.的全部内容
  • |:或关系,同时匹配左右两类冗余内容
  • \.NBA.*$:匹配从.NBA到字符串末尾的全部内容
  • 所有匹配到的内容直接替换为空,剩余部分就是目标球队名

小提示

你之前尝试的代码有两个问题:

  1. 正则里多了未配对的右括号),会触发正则语法错误
  2. pandas高版本str.replace默认关闭正则模式,需要显式加regex=True参数才会按正则规则匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:18:03