看起来像条数据向标题:凯塞多先发时切尔西英超胜率52%,不先发仅25%。这个结论有传播价值,但需要一点背景和验证。
要点
如果你手头有比赛清单,我可以帮你跑一遍。没有数据也行,给你一个可复用的小脚本,你把CSV塞进去就出结果:
Python(输入需要一行一场比赛)
# file: calc_winrate.pyimport csv, sysfrom collections import Counter, defaultdictdef rate(c): total = c['W'] + c['D'] + c['L'] return 0 if total==0 else c['W']/totaldef main(path): pools = {'all': Counter(), 'start': Counter(), 'nostart': Counter()} strat = defaultdict(Counter) # e.g. ('start','home') -[[NEWS.CONTENT_HTML]]gt; 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
\n
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[[NEWS.CONTENT_HTML]]lt;=6 else '7_12' if rank[[NEWS.CONTENT_HTML]]lt;=12 else '13_20' except: pass if tier: strat[(started, tier)][res]+=1
\n
print('Overall win rate:') for k in ['start','nostart']: print(f' {k}: {rate(pools[k]):.3f} (W/D/L={pools[k][[[NEWS.CONTENT_HTML]]quot;W[[NEWS.CONTENT_HTML]]quot;]}/{pools[k][[[NEWS.CONTENT_HTML]]quot;D[[NEWS.CONTENT_HTML]]quot;]}/{pools[k][[[NEWS.CONTENT_HTML]]quot;L[[NEWS.CONTENT_HTML]]quot;]})') 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())}')if __name__ == '__main__': if len(sys.argv)[[NEWS.CONTENT_HTML]]lt;2: print('Usage: python calc_winrate.py matches.csv'); sys.exit(1) main(sys.argv[1])需要我:
\n