如何生成按Student与CourseType分组的Units求和双向汇总表?
按Student与CourseType分组汇总Units求和的简便实现方法
Excel 操作步骤
- 选中包含
Student、CourseType、Units三列的数据区域 - 点击「插入」选项卡中的数据透视表
- 在数据透视表字段设置中:
- 将
Student拖到「行」区域 - 将
CourseType拖到「列」区域 - 将
Units拖到「值」区域,设置值汇总方式为「求和」
- 将
- 调整格式即可得到与示例一致的双向汇总表
Python(Pandas库)实现
使用pivot_table方法快速生成:
import pandas as pd # 示例数据(替换为你的实际数据) df = pd.DataFrame({ 'Student': ['Student A', 'Student A', 'Student A', 'Student B', 'Student B', 'Student C', 'Student C'], 'CourseType': ['Required', 'Elective', 'Internship', 'Required', 'Elective', 'Required', 'Elective'], 'Units': [90, 16, 24, 47, 4, 72, 12] }) # 生成双向汇总表,缺失组合填充0 pivot_df = df.pivot_table( index='Student', columns='CourseType', values='Units', aggfunc='sum', fill_value=0 ) print(pivot_df)
R语言实现
方法1:基础包xtabs
# 示例数据(替换为你的实际数据) df <- data.frame( Student = c("Student A", "Student A", "Student A", "Student B", "Student B", "Student C", "Student C"), CourseType = c("Required", "Elective", "Internship", "Required", "Elective", "Required", "Elective"), Units = c(90, 16, 24, 47, 4, 72, 12) ) # 生成交叉汇总表并填充缺失值为0 result <- xtabs(Units ~ Student + CourseType, data = df) result <- as.data.frame.matrix(result) result[is.na(result)] <- 0 print(result)
方法2:tidyverse包(更简洁)
library(tidyverse) df %>% pivot_wider( names_from = CourseType, values_from = Units, values_fill = 0, values_fn = sum )
内容的提问来源于stack exchange,提问作者Dr. Sarah C.
相关产品推荐
相关产品推荐

