实用脚本统计角球数哪边领先?

wen 实用脚本 5

统计角球数领先方的实用脚本

下面给你一个通用、可直接套用的脚本思路,覆盖 Excel/Python 两种常见场景。

实用脚本统计角球数哪边领先?


Excel 公式版(适合直播/复盘手动录入)

假设数据表结构:

A列 B列 C列 D列
时间 主队角球 客队角球 领先方

D2 公式:

=IF(B2>C2,"主队领先",IF(C2>B2,"客队领先","持平"))

统计全场领先时长(按分钟加权),假设 E 列是"该状态持续分钟数":

主队领先总时长 =SUMIF(D:D,"主队领先",E:E)
客队领先总时长 =SUMIF(D:D,"客队领先",E:E)

Python 脚本版(适合批量处理/爬取数据)

import pandas as pd
def corner_leader(home_corners, away_corners):
    """返回单一时点的角球领先方"""
    if home_corners > away_corners:
        return "主队领先"
    elif away_corners > home_corners:
        return "客队领先"
    else:
        return "持平"
# 示例数据:每分钟角球累计数
data = {
    "minute":       [10, 20, 30, 40, 50, 60, 70, 80, 90],
    "home_corners": [0,  1,  2,  2,  3,  4,  4,  5,  6],
    "away_corners": [1,  1,  1,  2,  2,  2,  3,  3,  3],
}
df = pd.DataFrame(data)
# 1. 每个时点谁领先
df["领先方"] = df.apply(
    lambda r: corner_leader(r["home_corners"], r["away_corners"]), axis=1
)
# 2. 计算每个状态持续时长(下一分钟 - 当前分钟)
df["持续"] = df["minute"].shift(-1).fillna(df["minute"].iloc[-1]) - df["minute"]
# 3. 汇总各状态总时长
summary = df.groupby("领先方")["持续"].sum()
print(summary)
# 4. 谁最终角球领先
final = corner_leader(df["home_corners"].iloc[-1], df["away_corners"].iloc[-1])
print("全场结束角球领先方:", final)

输出示例:

领先方
主队领先    40
持平        20
客队领先    30
全场结束角球领先方: 主队领先

进阶:从事件流自动判断"首次领先/反超"

如果数据是逐个角球事件(而非每分钟快照),用这个版本更准:

import pandas as pd
# 事件流:每个角球一条记录
events = pd.DataFrame({
    "minute": [5, 12, 18, 25, 33, 47, 58, 66, 78, 85],
    "team":   ["客", "主", "主", "客", "主", "主", "客", "主", "主", "客"],
})
home = away = 0
records = []
for _, e in events.iterrows():
    if e["team"] == "主":
        home += 1
    else:
        away += 1
    records.append({
        "minute": e["minute"],
        "home": home,
        "away": away,
        "领先方": corner_leader(home, away),
    })
df = pd.DataFrame(records)
# 找出领先方发生变化的时刻(含首次领先/反超)
df["变化"] = df["领先方"] != df["领先方"].shift(1)
changes = df[df["变化"]]
print(changes[["minute", "home", "away", "领先方"]])

这样能直接输出:第几分钟谁首次角球领先、第几分钟被反超,非常适合做赛事播报或复盘。


按你的实际需求选

场景 推荐
直播手动记录 Excel 公式版
批量处理历史数据 Python 快照版
要"反超时间点"分析 Python 事件流版
接入 API 实时推送 Python + 定时调用 corner_leader

如果你能告诉我数据来源格式(API JSON、CSV 字段、还是手动 Excel),我可以把脚本改成完全贴合你数据的版本,直接复制就能跑。

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