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

Pandas按列计算玩家正确率后按团队列求均值的高效实现方法

高效实现方案

直接使用pandas内置的groupby分组聚合操作即可完成需求,全程为底层C实现的矢量化运算,相比手动拆分DataFrame效率提升非常明显,尤其适合大数据量场景。

核心逻辑

  1. 先按player+school+team分组,计算每个玩家的个人成绩(布尔值True对应1、False对应0,直接求均值即可得到(True数量/总考试数)的结果)
  2. 再按school+team分组,对所有玩家的个人成绩求均值并保留两位小数,得到最终团队成绩

代码示例

import pandas as pd

# 第一步:计算每个玩家的个人通过率
player_score = df.groupby(
    ["player", "school", "team"], 
    as_index=False
)["result"].mean().rename(columns={"result": "personal_score"})

# 第二步:按团队分组计算平均成绩
team_result = player_score.groupby(
    ["school", "team"], 
    as_index=False
)["personal_score"].mean().round(2).rename(columns={"personal_score": "TeamResult"})

运行后输出的team_result就是你需要的结果格式。

效率说明

你之前手动筛选拆分DataFrame的方式,本质是在Python层做循环遍历,数据量越大性能损耗越高。而pandas的groupby聚合操作是底层优化过的运算,避免了Python层的循环开销,性能可以提升几个数量级。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:09:03