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

如何提取pandas字符串列的前导分数并去除无关后缀内容

解决pandas字符串列提取开头分数的问题

你之前使用的rstrip方法无法实现需求,原因是rstrip的入参是待删除的字符集合,而非正则匹配规则:你传入的' .*'只会删除字符串末尾的空格、点、星号三类字符,无法匹配+、字母、括号等需要移除的后缀内容。

最优实现方案

直接使用pandas内置的矢量化字符串正则提取方法str.extract(),不需要通过apply遍历,执行效率更高:

# 提取开头的「数字/数字」格式分数,再去重
result = df['colname'].str.extract(r'^(\d+/\d+)', expand=False).unique()

正则规则说明

  • ^:锚定匹配字符串的开头,确保只抓取最靠前的分数部分
  • \d+:匹配1个及以上的数字
  • /:匹配分数中间的斜杠
  • 括号():标记我们需要提取的捕获组
  • expand=False:指定返回Series而非DataFrame,方便后续直接调用unique()去重

对你给出的测试样本执行以上代码,输出结果和你预期完全一致:
['20/25' '9/200' '20/50' '20/30' '20/60' '20/20' '20/70']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 10:15:03