uotW

看起来像条数据向标题:凯塞多先发时切尔西英超胜率52%,不先发仅25%。这个结论有传播价值,但需要一点背景和验证。

要点

如果你手头有比赛清单,我可以帮你跑一遍。没有数据也行,给你一个可复用的小脚本,你把CSV塞进去就出结果:

Python(输入需要一行一场比赛)

# file: calc_winrate.py
import csv, sys
from collections import Counter, defaultdict

ersta

def rate(c): total = c['W'] + c['D'] + c['L'] return 0 if total==0 else c['W']/total def main(path): pools = {'all': Counter(), 'start': Counter(), 'nostart': Counter()} strat = defaultdict(Counter) # e.g. ('start','home') -> counter with open(path, newline='', encoding='utf-8') as f: for r in csv.DictReader(f): res = r['result'].strip().upper()[0] # W/D/L started = 'start' if r['caicedo_started'].strip()=='1' else 'nostart' pools['all'][res]+=1; pools[started][res]+=1 home = 'home' if r.get('home','').strip()=='1' else 'away' strat[(started, home)][res]+=1 tier = None if r.get('opp_rank'): try: rank = int(r['opp_rank']) tier = 'top6' if rank<=6 else '7_12' if rank<=12 else '13_20' except: pass if tier: strat[(started, tier)][res]+=1 print('Overall win rate:') for k in ['start','nostart']: print(f' {k}: {rate(pools[k]):.3f} (W/D/L={pools[k]["W"]}/{pools[k]["D"]}/{pools[k]["L"]})') print('\nBy home/away:') for k in [('start','home'),('start','away'),('nostart','home'),('nostart','away')]: c = strat[k]; total = c['W']+c['D']+c['L'] print(f' {k}: {rate(c):.3f} n={total}') print('\nBy opponent tier (if opp_rank provided):') for tier in ['top6','7_12','13_20']: for s in ['start','nostart']: c = strat[(s,tier)] if sum(c.values()): print(f' {s}-{tier}: {rate(c):.3f} n={sum(c.values())}')

o上季

if __name__ == '__main__': if len(sys.argv)<2: print('Usage: python calc_winrate.py matches.csv'); sys.exit(1) main(sys.argv[1])

需要我:

  1. 直接按你指定赛季核验这条“52% vs 25%”吗?
  2. 做一版图解/社媒海报用的要点和短评?
  3. 深一点的战术分析(马雷斯卡体系下的作用分解 + 数据侧证)?