案例:利用Pandas按年月、考试科目汇总学生成绩并展示为并列柱状图

Python数据可视化实战期末课程设计——各科目考试成绩可视化项目 1、训练要点(1)掌握使用seaborn库或者matplotlib库进行数据可视化的方法(2)掌握撰写可视化分析报告的方法2、需求说明在现实生活中,学生的成绩与表现往往受制于多方面的因素。在教学研究中,除去对各科目考试结果本身的分析外,如果能够深入地对学生其他信息(如对学生家庭背景、性别、饮食、课前准备等影响因素)进行分析,那么老师将会进一步了解学生在考试中的表现。学生考试成绩数据集中包含8各字段,共计1000条数据,其字段信息说明如下表所示。表:学生考试成绩数据集中的字段信息说明。 阅读详情

需求

现有一批学生成绩,需要分析不同月份各科考试成绩波动情况,根据数据可知,即按照考试月份及考试科目对成绩汇总求平均成绩。
在这里插入图片描述

在这里插入图片描述

问题解决

根据数据源结构可知,主要难点如下:

  1. 源数据中的日期列格式为年/月/日,为便于汇总,需转换为年/月格式。
  2. 需要按日期、考试科目对分数进行分组并求均值。
  3. 需要将分析结果以柱状图的形式进行展示

关键中间结果

读取数据

data = pd.read_excel("考试分数.xlsx")
df = data[['日期','考试科目','分数']]

在这里插入图片描述

转换日期

df["日期"]=pd.to_datetime(df["日期"],format='%Y/%m/%d',errors='coerce').dt.to_period('m')

在这里插入图片描述

分组汇总

data=df.groupby([df['日期'],df['考试科目']]).agg('mean')

在这里插入图片描述

转换分组结果

data=df.groupby([df['日期'],df['考试科目']]).agg('mean').unstack()

在这里插入图片描述

data.index

输出:

PeriodIndex(['2013-11', '2013-12', '2014-01', '2014-02', '2014-03', '2014-04',
             '2014-05'],
            dtype='period[M]', name='日期2', freq='M')
data.columns

输出:

MultiIndex([('分数', '数学'),
            ('分数', '科学'),
            ('分数', '阅读')],
           names=[None, '考试科目'])

完整代码

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

# 设置字体
plt.rcParams['font.family'] = 'simhei'

# 读取数据
data = pd.read_excel("考试分数.xlsx")
df = data[['日期','考试科目','分数']]
# 将日期转换为年-月格式
df["日期"]=pd.to_datetime(df["日期"],format='%Y/%m/%d',errors='coerce').dt.to_period('m')
# 先按年月、考试科目分组数据,再求平均分数
data=df.groupby([df['日期'],df['考试科目']]).agg('mean').unstack().round(2)
# 使用pandas绘制并列柱状图
data.plot(kind='bar')

# 使用matplotlib绘制并列柱状图
# x = np.arange(len(data.index)) 
# labels = data.index
# plt.xticks(x, labels)
# width = 0.25 
# b1=plt.bar(x - width, data['分数','数学'], width, label='1')
# plt.bar_label(b1, label_type='edge',fontsize=8)
# b2=plt.bar(x, data['分数','科学'], width, label='2')
# plt.bar_label(b2, label_type='edge')
# b3=plt.bar(x + width, data['分数','阅读'], width, label='3')
# plt.bar_label(b3, label_type='edge')

plt.show()
各科目考试成绩可视化项目 掌握使用seaborn库或者matplotlib库进行数据可视化的方法掌握撰写可视化分析报告的方法。 阅读详情

相关推荐

基于fMRI数据计算脑脊液(CSF)与全脑BOLD信号的时间耦合分析

BOLD和CSF信号有多相似CSF信号要延迟多少时间才能最匹配BOLD信号BOLD-CSF的互相关公式lag:时间延迟采样点数BOLD信号CSF信号延迟时间点对应的相关系数。

Rose9614的博客 2981

pandas数据分析数据matplotlib可视化numpy精讲+实战

NumPy:数据分析三部曲之一,极为流行的数据科学计算库,数据分析、人工智能和大数据研究领域必备技能。Pandas:数据分析三部曲之一,极为流行的Python数据分析库,数据分析、人工智能和大数据必备神技。Matplotlib:数据分析三部曲之一,极为流行的数据可视化工具,数据分析、人工智能和大数据必备技能。本课程系统介绍:1.NumPy数据科学计算的各种使用方法,2.Pandas数据分析的各使用方法,3.Matplotlib数据可视化各种常用图表。通过案例的形式由浅入深,循序渐进,理论与实际相结合。本课程特点:摒弃传统重理论,轻实践,引入案例,解决问题采用kaggle等行业真实数据集,更具实际应用.全套数据及课程资源免费赠送.

如何在离线的电脑上部署一个本地Deepseek(使用ollama)

例如,如果您的显卡显存为 16GB,官方推荐使用 32b 大小的 DeepSeek 模型。请根据您的硬件配置选择适合的模型版本,以获得最佳性能。首先我们需要将ollama和chatbox的安装包,Deepseek模型文件通过U盘或者光盘的形式导入到这台不能联网的电脑上。按照时间排序,找到最大的那个文件,就是gguf格式的模型,复制出来,改名为qwen2.5-coder0.5b.gguf。:基于开源模型(如 QWEN 和 LLAMA)微调,参数量从 1.5B 到 70B 不等,适合本地硬件部署。

qq_41854911的博客 1万+

python柱状图、直方图和饼状图统计学生成绩

Python的matplotlib库具有很强大的绘图功能,可以利用这个库函数来进行学生成绩统计。假如有一个班的某科学生成绩如表1所示,可以用柱状图、直方图和饼状图三种方式来进行统计分析。下边介绍一下操作步骤。

m0_72963799的博客 1万+

智慧矿山无人机空地一体化解决方案

未来,随着技术的不断进步和应用场景的不断拓展,智慧矿山无人机空地一体化解决方案将在矿业领域发挥更加重要的作用,为矿山的可持续发展提供更加有力的保障。该系统能够实现矿山的全方位、全天候监测与管理,提升矿山生产效率,降低安全风险,并为矿山的可持续发展提供有力支持。智慧矿山无人机空地一体化解决方案是当前矿业领域技术创新的重要方向,旨在通过集成无人机技术、物联网、大数据、人工智能等先进技术,实现矿山的智能化、高效化和安全化运营。在矿山爆破、挖掘等危险作业中,无人机可进行远程监控和指挥,降低人员安全风险。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 1109

图像去雨:超详细手把手写 pytorch 实现代码(带注释)

占个坑,过几天来写

书山有路,学海无涯! 1万+

学生成绩分布柱状图

有没有大佬帮我看看这个啊,改了好久改不出来。

W120108_的博客 1457

RandLA-Net 调通代码1:Windows 11 + Tensorflow 2.4 + S3DIS数据集【踩坑+填坑】

TF不上进啊,学学pytorch

累了就要打游戏 2480

dataframe转化为array_利用pandas,os包,将文件夹下所有excel文件成绩信息,一人多行,转化为一人一行。如图1到图2的转换。...

图1图2#!/usr/bin/env python# -*- encoding: utf-8 -*-'''@文件 :NRowToCols.py@说明 :成绩信息一人多行转化为一人一行@时间 :2020/10/11 09:51:03@作者 :放鸭江上@版本 :3.8'''import pandas as pdimport osdef rowtocols(fil...

weixin_39820226的博客 173

YOLO26改进策略【小目标改进】| 添加专用于小目标的检测层 附YOLOv1~YOLOv11的检测头变化详解

在目标检测领域,小目标检测一直是一个具有挑战性的问题。算法以其高效快速的特点受到广泛关注,然而在面对小目标时,仍存在一些局限性。本文将介绍如何在中添加小目标检测层,以提高对小目标的检测能力。原始模型结构如下: 二、有效特征层对应的检测头类别 2.1 P3/8 - small检测头 原始模型中的对应的检测头主要用于检测相对较小的目标。其特征图大小相对较大,空间分辨率较高。 适合检测尺寸大概在到像素左右的目标。 2.2 P4/16 - medium检测头 这个检测头对应的经过了更多的下采样操作,相比P3/

Limiiiing的博客 349

YOLOv8【第十一章:视频追踪与流处理篇·第6节】BoT-SORT 改进:结合相机运动补偿(CMC)提升追踪稳定性!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 718

【Python】【Pandas】使用concat添加行

添加行 t = pd.DataFrame(columns=["姓名","平均分"]) t = t.append({"姓名":"小红","平均分":M1},ignore_index=True) t = t.append({"姓名":"张明","平均分":M2},ignore_index=True) t = t.append({"姓名":"小江","平均分":M3},ignore_index=Tru...

萌狼蓝天の技术栈 3813

π0.5部署实战(一) ------ 在Thor上使用NVFP4量化

此篇文章是pi05模型在thor上部署系列文章的第一篇.主要介绍如何对pi05 2.6B LLM(Gemma)使用nvfp4进行量化.所有操作使用开源工具可以先参考进行环境的准备和安装,在上完成以下操作.

happyAnger6的专栏 400

利用Python分析学生成绩(完整版)

注意:本实验是基于Anconda3.X所进行的 一、题目描述 二、题目分析 三、完整代码展示 四、结果展示 一、题目描述 个人构造一个30名学生的班级,每名学生有三门课程,学生的学号和各门成绩形如: 学号 高数 英语 Python 1001 85 90 96 1002 96 92 95 1003 78 87 83 为了输入数据方便,请保存在如student_score.csv文件中。 ...

weixin_44309097的博客 5万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【亲测免费】 学生各科目考试成绩可视化分析报告:探索成绩背后的秘密

学生各科目考试成绩可视化分析报告:探索成绩背后的秘密 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在教育领域,学生的考试成绩不仅是衡量其学习成果的重要指标,更是反映教育质量和学生个体差异的窗口。《学生各科目考试成绩可视化分析报告》项目应运而生,旨在通过数据分析和可视化技术,深入挖掘影响学生成绩的多种因素,为教育工作者和研究者提供有价值的参考。 本项目基于一个包含10...

gitblog_06653的博客 980

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

基于pandas的成绩分析可视化

文章目录各科目挂科人数分析各科挂科人数占比及各班挂科人数各班绩点分布班级平均绩点单人挂科数量分析最终成绩分析报告 期末考试结束,辅导员让我做个成绩分析,于是就简单的写个python做做,写的很乱,将就看吧。 用到了pandas,pyecharts,csv,matplotlib这些包 我的数据样本为这样(一个班的数据为一个表): 各科目挂科人数分析 # @Time:2022/1/2123:35 # @Author:中意灬 # @File:各班挂科人数分析.py # @ps:tutu qqnum:211747

qq_55977554的博客 5745

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

学生成绩分析项目——数据分析与可视化

学生成绩分析

分享关于数据的知识。 6640

实战:使用pandas.cut与value_counts实现考试成绩智能分箱与可视化分析

本文详细介绍了如何使用pandas.cut与value_counts实现考试成绩的智能分箱与可视化分析。通过自动划分分数区间、快速统计各区间人数并生成直观图表,帮助教育工作者高效完成成绩分析,提升工作效率。文章包含完整代码示例和实战经验,特别适合需要进行分数段统计的教育数据分析场景。

qq_27496129的博客 892

Pandas分箱实战:5分钟搞定学生成绩分段统计与可视化(附完整代码)

本文详细介绍了如何使用Pandas的`pd.cut()`和`pd.value_counts()`函数快速实现学生成绩的分段统计与可视化。通过实战代码演示,从数据分箱、分数段统计到生成柱状图、饼图等可视化图表,帮助教育工作者和数据分析师在5分钟内高效完成成绩分析,提升数据处理效率。

night的博客 510

基于Python的学生考试成绩数据可视化分析系统的设计与实现

Java简介Java是一种面向对象的静态式编程语言。Java编程语言具有多线程和对象定向的特点。其特点是根据方案的属性将方案分为几个不同的模块,这些模块是封闭的和多样化的,在申请过程中具有很强的独立性。Java语言在计算机软件开发过程中的运用可以达到交互操作的目的,通过各种形式的交换,可以有效地处理所需的数据,从而确保计算机软件开发的可控性和可见性。开发java语言时,保留了网络接口,Java保留的缺省网络接口可以与web应用程序编程所依赖的类别库相匹配。

yh1340327157yh的博客 167

基于Python的考研调配系统考试成绩招生调剂爬虫与可视化大屏展示研究

根据需求分析结果进行了系统的设计,并将其划分为管理员,学校和考生三种角色:主要功能包括系统首页,个人中心,考生管理,学校管理,考生成绩管理,招生信息管理,分数段管理,申请调剂管理,调剂信息管理,系统管理等。为此,本文提出了一种基于Python的考研调配系统,该系统通过爬虫技术自动收集考试成绩信息,并利用可视化大屏进行展示,为招生调剂工作提供了有力的决策支持。表格则用于展示具体的数据细节。例如,目前系统只支持对单一来源的数据进行爬取和展示,未来可以考虑扩展系统的功能,支持对多个来源的数据进行集成和综合分析。

qq_53797749的博客 1711

Python打卡Day6—Pandas表格样式&数据可视化

就是用背景高亮标记出空值,应用.highlight_null() 即可将空值高亮显示,同时用null_color参数可以指定该高亮的颜色。面积图是一种有效的数据可视化工具,用于展示数据的趋势、比较不同组之间的差异以及理解数据的部分与整体关系。Pandas 的样式是一个可视化的方法,像Excel一样对特定数据进行加粗、标红、背景标黄等,为了让数据更加清晰醒目,突出数据的逻辑和特征。将每个学生的分数,进行加总和计算平均数,并保留两位小数,把分数低于120的学生,用红色进行标记即可。

m0_45434809的博客 1960

第7课 pandas表格样式和 pandas数据可视化

第一课时:pandas表格样式字体颜色标注:我们想把成绩超过80的分数用红色标注出来定义一个函数,根据不同的条件返回不同的颜色定义一个函数,然后采用set_index的函数参数说明key:数据表中的某列/列标签列表/数组列表,需要设置为索引的列。drop:删除用作新索引的列,默认为True,删除。append:是否将列附加到现有索引,默认为False,否。inplace:表示当前操作是否对原数据重新,默认为False,否。verify_integrity:检查新索引的副本。

xiaocheng6108的博客 1130

python双体综合考试成绩分析系统视频vue3

Python双体综合考试成绩分析系统结合Vue3前端框架,实现成绩数据的可视化分析与交互展示。系统后端采用Python(如Django/Flask)处理数据逻辑,前端使用Vue3构建动态界面,支持成绩录入、统计、图表生成及多维分析。Hadoop:Hadoop 是一个分布式计算平台,用于处理大规模数据。在酒店评论情感分析中,它负责存储和处理海量评论数据,支持并行计算,提升数据处理效率,为深度学习模型训练提供强大的数据支持。决策树算法:决策树是一种经典的机器学习算法,用于情感分类。

qq_3166678367的博客 675

Python数据分析及可视化之Seaborn可视化-实训

Python数据分析及可视化之Seaborn可视化-实训

随心发挥 2245

Python学生成绩数据分析可视化工具(Tkinter+Pandas+Matplotlib)完整源码

本项目是一款基于开发的桌面端学生成绩数据分析可视化工具,无需复杂部署,开箱即用。支持导入 Excel、CSV 成绩文件,自动完成成绩统计分析、多维度可视化绘图、报告导出、历史数据存档等功能。工具适配教师、班委、教学管理人员日常成绩统计场景,完美解决传统 Excel 手动统计繁琐、图表制作困难、数据无存档的痛点,适合 Python 课程设计、毕设练手、教学辅助工具开发。支持导入主流的 Excel、CSV 成绩表格文件,自动去除空行脏数据,左侧表格实时预览数据内容,最多预览150行数据,清晰查看原始成绩信息。

m0_64476639的博客 186
上一篇: matplotlib之pyplot模块——绘制小提琴图violinplot()
下一篇: pyecharts新旧版本(v0.5.X 和 v1)的区别
mighty13
博客等级 码龄23年 728粉丝 438原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值