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

如何用正则表达式从Pandas数据集的足球比分字符串提取主客场进球数

用正则表达式提取足球比分中的主客队进球数

完全可以用单个正则表达式搞定两种比分格式的提取,不用分开写两个。核心思路是精准匹配比分里-两侧的实际进球数字,自动忽略前后的点球决胜括号内容。

正则表达式写法

(?:\(\d+\)\s*)?(\d+)-(\d+)(?:\s*\(\d+\))?

正则各部分说明

  • (?:\(\d+\)\s*)?:匹配前面可能存在的点球数(比如(5))和后续空格,?:表示这是个非捕获组(不会提取这部分内容),?表示该部分可选(标准比分没有这部分时自动忽略)
  • (\d+):第一个捕获组,提取主队进球数
  • -:匹配比分的分隔符
  • (\d+):第二个捕获组,提取客队进球数
  • (?:\s*\(\d+\))?:匹配后面可能存在的点球数(比如(4))和前面空格,同样是非捕获可选组

Pandas中实际使用示例

import pandas as pd

# 模拟你的数据集
df = pd.DataFrame({
    'score': ["4-2", "(5) 2-3 (4)", "1-1", "(3) 0-0 (5)"]
})

# 提取主客队进球数,生成新列
df[['主队进球', '客队进球']] = df['score'].str.extract(r'(?:\(\d+\)\s*)?(\d+)-(\d+)(?:\s*\(\d+\))?')

print(df)

运行后输出结果:

score 主队进球 客队进球
0           4-2     4     2
1  (5) 2-3 (4)     2     3
2           1-1     1     1
3  (3) 0-0 (5)     0     0

完美覆盖两种比分格式的提取需求,不需要额外处理不同格式的分支逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 06:01:09