如何制作按名称统计各Mark等级数量的表格
按名称统计各等级数量的解决方案
一、Excel 操作步骤
- 选中目标数据区域,点击菜单栏「插入」→「数据透视表」
- 将「Name」字段拖至行区域,「Mark」字段同时拖至列和值区域(值区域默认计数逻辑,无需额外设置)
- 生成的透视表会自动展示每个Name对应的low、mid、high等级数量
二、SQL 实现代码
基础分组统计写法
SELECT Name, COUNT(CASE WHEN Mark = 'low' THEN 1 END) AS low_count, COUNT(CASE WHEN Mark = 'mid' THEN 1 END) AS mid_count, COUNT(CASE WHEN Mark = 'high' THEN 1 END) AS high_count FROM your_table GROUP BY Name;
PIVOT 语法写法(以SQL Server为例)
SELECT Name, low, mid, high FROM ( SELECT Name, Mark FROM your_table ) AS src PIVOT ( COUNT(Mark) FOR Mark IN (low, mid, high) ) AS pivot_result;
三、Python Pandas 实现代码
import pandas as pd # 示例数据(替换为你的实际数据) df = pd.DataFrame({ 'Name': ['Alice', 'Alice', 'Bob', 'Bob', 'Bob', 'Charlie'], 'Mark': ['low', 'mid', 'high', 'low', 'low', 'mid'] }) # 方法1:使用交叉表 count_result = pd.crosstab(df['Name'], df['Mark']) # 方法2:使用透视表 count_result = df.pivot_table(index='Name', columns='Mark', aggfunc='size', fill_value=0) print(count_result)
内容的提问来源于stack exchange,提问作者Siddhant garg
相关产品推荐
相关产品推荐

