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

如何优化Pandas统计足球球队胜场并保留DataFrame格式

优化足球赛事胜场统计的Pandas实现

需求背景

我正在处理一个包含数千场足球赛事结果的Pandas DataFrame,仅包含home_team、away_team、home_score、away_score列。需要统计胜场排名前15的球队,当前通过计算分差、标记比赛结果的方式统计胜场,代码比较繁琐,希望优化实现,同时保留结果为DataFrame格式方便用Seaborn分析。

原始数据代码

import pandas as pd

data = [["Spain","England",3,2],["France","Germany",0,2],["Poland","Gambia",1,4],["England", "Spain",2,2],["France","England",1,0]]
df = pd.DataFrame(data, columns = ["home_team","away_team","home_score","away_score"])

当前实现代码

scores['balance'] = scores['home_score'] - scores['away_score']

scores["result"] = scores["balance"].apply(lambda x: "Home wins" if x > 0 else "Away wins" if x < 0 else "Draw")

# 统计主场胜场
scores_home = scores[scores["result"]=="Home wins"]
victories_home = scores_home["home_team"].value_counts()

# 统计客场胜场
scores_away = scores[scores["result"] == "Away wins"]
victories_away = scores_away["away_team"].value_counts()

total_vict = victories_home + victories_away
top_15_total_vict = total_vict.sort_values(ascending=False).head(15)
print(total_vict.sort_values(ascending=False).head(15))

print(scores.head())

优化后的实现代码

import pandas as pd

# 加载原始数据
data = [["Spain","England",3,2],["France","Germany",0,2],["Poland","Gambia",1,4],["England", "Spain",2,2],["France","England",1,0]]
df = pd.DataFrame(data, columns = ["home_team","away_team","home_score","away_score"])

# 分别筛选主客场获胜球队
home_winners = df.loc[df['home_score'] > df['away_score'], 'home_team']
away_winners = df.loc[df['away_score'] > df['home_score'], 'away_team']

# 合并数据并统计胜场
all_winners = pd.concat([home_winners, away_winners])
win_stats = all_winners.value_counts().reset_index()
win_stats.columns = ['team', 'win_count']

# 获取胜场前15的球队
top_15_teams = win_stats.sort_values(by='win_count', ascending=False).head(15)

print(top_15_teams)

优化亮点

  • 简化逻辑:直接通过比分比较筛选获胜球队,省去计算分差、标记比赛结果的冗余步骤
  • 代码精简:用pd.concat合并主客场获胜序列,一次调用value_counts()完成统计
  • 格式适配:通过reset_index()将统计结果转为标准DataFrame,列名清晰,可直接用于Seaborn可视化分析

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 23:45:34