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

如何计算DataFrame中各球队的主场胜率与客场胜率?

计算各球队主场与客场胜率

初始化DataFrame

import pandas as pd

df = pd.DataFrame({
    "homeTeam": ["B","C","A","A","B","C","A","A"],
    "AwayTeam": ["A","A","C","B","A","A","C","B"],
    "homeTeam Score": [3,5,0,2,0,4,0,0],
    "AwayTeam Score": [1,3,1,1,1,3,1,1]
})

原始数据

homeTeamAwayTeamhomeTeam ScoreAwayTeam Score
BA31
CA53
AC01
AB21
BA01
CA43
AC01
AB01

需求

计算各球队的主场胜率与客场胜率,结果格式如下:

TeamHome win rateaway win rate
B50%0%
C100%100%
A25%25%

解决方案

# 标记主场胜场:主队得分高于客队则为胜
df['home_win'] = df['homeTeam Score'] > df['AwayTeam Score']
# 标记客场胜场:客队得分高于主队则为胜
df['away_win'] = df['AwayTeam Score'] > df['homeTeam Score']

# 统计各球队主场总场次、胜场数,计算胜率
home_stats = df.groupby('homeTeam')['home_win'].agg(['count', 'sum'])
home_stats['Home win rate'] = (home_stats['sum'] / home_stats['count'] * 100).astype(str) + '%'

# 统计各球队客场总场次、胜场数,计算胜率
away_stats = df.groupby('AwayTeam')['away_win'].agg(['count', 'sum'])
away_stats['away win rate'] = (away_stats['sum'] / away_stats['count'] * 100).astype(str) + '%'

# 合并主客场胜率数据,对齐球队名称
result = pd.concat([home_stats['Home win rate'], away_stats['away win rate']], axis=1).reset_index()
result.rename(columns={'index': 'Team'}, inplace=True)

# 按示例顺序排序
result = result.set_index('Team').loc[['B', 'C', 'A']].reset_index()

print(result)

输出结果

运行代码后得到的结果如下:

TeamHome win rateaway win rate
B50%0%
C100%100%
A25%25%

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 06:53:32