实用脚本统计任意球直接得分几次?

wen 实用脚本 2

本文目录导读:

实用脚本统计任意球直接得分几次?

  1. 方案一:你有一份比赛事件表(Excel/CSV)
  2. 方案二:统计某球员的任意球直接得分
  3. 方案三:按球队/赛季分组统计
  4. 方案四:从文本(解说词/新闻)中提取
  5. 方案五:接入 API(如 API-Football)
  6. 关键判断逻辑(无论哪种数据源)

"任意球直接得分"的统计,需要先明确一个关键点:数据从哪里来,不同场景下脚本写法完全不同,下面给你几个实用方案,按数据源分类。


你有一份比赛事件表(Excel/CSV)

假设表结构如下:

比赛 时间 球队 球员 事件类型 备注
A vs B 23' A 张三 任意球 直接破门
A vs B 45' B 李四 任意球 传中
import pandas as pd
df = pd.read_csv("events.csv")
# 统计任意球直接得分
direct_fk_goals = df[
    (df["事件类型"] == "任意球") &
    (df["备注"].str.contains("直接破门|直接得分", na=False))
]
print(f"任意球直接得分:{len(direct_fk_goals)} 次")
print(direct_fk_goals[["比赛", "时间", "球员"]])

统计某球员的任意球直接得分

player = "梅西"
count = df[
    (df["球员"] == player) &
    (df["事件类型"] == "任意球") &
    (df["备注"].str.contains("直接", na=False))
].shape[0]
print(f"{player} 任意球直接得分:{count} 次")

按球队/赛季分组统计

result = (
    df[df["备注"].str.contains("直接", na=False) &
       (df["事件类型"] == "任意球")]
    .groupby(["球队"])
    .size()
    .reset_index(name="直接任意球得分")
    .sort_values("直接任意球得分", ascending=False)
)
print(result)

从文本(解说词/新闻)中提取

如果只有一段文字,用正则:

import re
text = """
第23分钟,张三主罚任意球直接破门。
第67分钟,李四任意球传中,队友头球得分。
第80分钟,王五任意球直接得分。
"""
# 匹配"任意球...直接(破门|得分)"
pattern = r"任意球[^。]*?直接(?:破门|得分)"
matches = re.findall(pattern, text)
print(f"直接任意球得分:{len(matches)} 次")
for m in matches:
    print(" -", m)

接入 API(如 API-Football)

如果你要抓实时数据:

import requests
API_KEY = "你的key"
url = "https://v3.football.api-sports.io/fixtures/events"
params = {"fixture": 123456}
headers = {"x-apisports-key": API_KEY}
data = requests.get(url, headers=headers, params=params).json()
count = 0
for e in data["response"]:
    # type=Goal, detail=Free Kick 表示任意球直接破门
    if e["type"] == "Goal" and e["detail"] == "Free Kick":
        count += 1
        print(e["time"]["elapsed"], e["player"]["name"])
print(f"任意球直接得分:{count} 次")

API-Football 里 detail: "Free Kick" 就是直接任意球破门;detail: "Normal Goal" 是普通进球。


关键判断逻辑(无论哪种数据源)

判断"直接"最重要,要区分:

情况 是否算直接得分
任意球直接射门入网
任意球传中,队友头球破门
任意球射门被扑,补射入网
任意球射门击中门柱弹进 ✅(一般算)

所以脚本的核心过滤条件通常是:

  • 事件类型 == 任意球
  • 且 进球方式 == 直接射门/直接破门

告诉我你的数据长什么样(CSV 列名、Excel 截图、文字样本、还是想调 API),我可以给你写一个完全对得上的脚本。

抱歉,评论功能暂时关闭!