如何按Generation分组计算平均StructureScore并生成新数据集
嗨,Laura!我来帮你搞定这个分组计算平均得分的需求,用常见的数据分析工具就能轻松实现,下面给你几个主流方案:
解决方案:按Chain+Generation分组计算平均StructureScore
1. 使用Excel(适合非编程用户)
如果习惯用Excel处理数据,两种方法都能快速得到结果:
- 分类汇总法
- 选中你的完整数据集(包含所有列)
- 点击顶部「数据」选项卡 → 选择「分类汇总」
- 在弹出窗口中设置:
- 「分类字段」先选 Chain,再添加一次选 Generation(确保先按Chain分组,再在每个Chain内按Generation细分)
- 「汇总方式」选择 平均值
- 「选定汇总项」勾选 StructureScore
- 点击确定后,Excel会自动生成带分组平均值的结果,你可以把这些平均值行单独提取出来组成新数据集。
- 数据透视表法(更灵活)
- 插入数据透视表,把
Chain拖到「行」区域,Generation也拖到「行」区域(放在Chain下方),StructureScore拖到「值」区域 - 点击「值」区域的
StructureScore,选择「值字段设置」,把计算类型改成「平均值」 - 最后把透视表的结果复制粘贴成普通表格,就是你要的新数据集。
- 插入数据透视表,把
2. 使用Python Pandas(适合编程用户)
假设你的数据集已经是Pandas的DataFrame格式(命名为df),用几行代码就能完成:
# 按Chain和Generation分组,计算StructureScore的平均值 avg_df = df.groupby(['Chain', 'Generation'])['StructureScore'].mean().reset_index() # 查看生成的新数据集 print(avg_df)
- 代码解释:
groupby(['Chain', 'Generation'])会先按Chain分组,每个Chain内再按Generation拆分;mean()计算每组的平均得分;reset_index()把分组后的索引转为普通列,最终avg_df就是包含Chain、Generation、对应平均得分的新数据集。
3. 使用R语言(适合统计分析用户)
如果用R处理数据,借助dplyr包可以简洁实现:
# 先安装dplyr包(首次使用时运行) # install.packages("dplyr") library(dplyr) # 分组计算平均得分,忽略缺失值 avg_df <- df %>% group_by(Chain, Generation) %>% summarise(AverageStructureScore = mean(StructureScore, na.rm = TRUE)) %>% ungroup() # 查看结果 print(avg_df)
- 代码解释:
group_by()指定分组字段;summarise()生成新列存储平均值,na.rm = TRUE用来忽略可能存在的缺失值;ungroup()取消分组状态,得到的avg_df就是你需要的目标数据集。
内容的提问来源于stack exchange,提问作者Laura
相关产品推荐
相关产品推荐

