如何使用Pandas统计足球赛事中指定球队的主场获胜场次及胜率
方案1:单球队直接查询计算
直接按条件筛选后统计即可,无需先做全量groupby,针对指定球队的实现代码如下:
# 定义目标球队 target_team = "Paris" # 筛选该球队作为主队的所有赛事 team_home_data = data[data["HomeTeam"] == target_team] # 统计主胜场次,也可以换成FTRNUM == "1"筛选 win_count = len(team_home_data[team_home_data["FTR"] == "H"]) # 统计主场总场次 total_count = len(team_home_data) # 计算胜率,做除0防护 win_rate = win_count / total_count if total_count != 0 else 0 print(f"{target_team} 主场胜场:{win_count},主场胜率:{win_rate:.2%}")
方案2:批量生成全球队主场统计结果后查询
如果需要频繁查询不同球队的胜率,可以先统一算出所有球队的统计值存储,后续直接取数即可:
# 批量统计所有主队的场次、胜场、胜率 home_stats = data.groupby("HomeTeam").agg( 总主场场次 = ("FTR", "count"), 主场胜场 = ("FTR", lambda x: (x == "H").sum()) ).reset_index() home_stats["主场胜率"] = home_stats["主场胜场"] / home_stats["总主场场次"] # 直接查询指定球队的统计结果 paris_data = home_stats[home_stats["HomeTeam"] == "Paris"].iloc[0] print(f"巴黎主场胜场:{paris_data['主场胜场']},主场胜率:{paris_data['主场胜率']:.2%}")
两种方案都无需手动读取统计值赋值,修改目标球队名称即可获取任意球队的对应数据。
内容的提问来源于stack exchange,提问作者Bruno93600
相关产品推荐
相关产品推荐

