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

如何对DataFrame双层切片快速计算学生在各学习小组的平均答题表现

高效计算学生各小组平均答题正确率实现方案

直接使用pandas内置的分组聚合能力即可完成需求,无需手动逐一切片,性能提升非常明显:

核心代码

import pandas as pd

# 假设你的原始数据集存储在变量df中
# 按学习小组、学生两个维度分组,直接对布尔型的answer列求均值,自动计算正确率
result_df = df.groupby(
    ["study_group", "student"], 
    as_index=False
)["answer"].mean().rename(columns={"answer": "Average"})

# 可选:按需求保留两位小数,匹配示例输出格式
result_df["Average"] = result_df["Average"].round(2)

可选过滤:仅保留加入多个小组的学生

如果后续只需要分析多小组学生的表现差异,可以额外加一层过滤:

# 统计每个学生加入的不同小组数量
student_group_count = df.groupby("student")["study_group"].nunique()
# 筛选出加入2个及以上小组的学生ID
multi_group_stu_ids = student_group_count[student_group_count >= 2].index
# 过滤结果集
multi_group_result = result_df[result_df["student"].isin(multi_group_stu_ids)]

性能说明

上述方案基于pandas底层向量化运算实现,避免了Python层的循环遍历开销,相比手动切片的方案性能提升10~100倍,即使处理百万行级别的数据集也可以快速完成计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:57:01