python给成绩表加上姓名列_Python数据分析基础练习
Python数据分析基础(余本)第四章练习
需求
班主任现有一班级的两张表,如下:
信息表:成绩表:现请帮班主任做如下工作:
1) 给成绩表加上姓名列;
2) 给成绩表加上字段“总分”列,并求出总分;
3) 增加列字段“等级”,标注每人“总分”的“优、良、中、及格、差”(270≤优,240≤良,210≤中,及格≤180,差≤180);
4) 计算各门课程的平均成绩以及标准差;
5) 做"总分"成绩分布图,纵坐标表示成绩,横坐标表示学号或者姓名,画出总分的均分横线,让每位同学的总分圆点分布在均分线上下,以便于观察每位同学的成绩离开均分的距离。
引入andas包进行数据分析和matlotb.ylot画图
imortmatlotb.ylotaslt
imortandasasd1) 给成绩表加上姓名列:
读取sheet数据
address='ython实战.xlsx'
sheet1=d.read_excel(address,sheet_name='成绩表')
sheet2=d.read_excel(address,sheet_name='信息表',usecs=[0,1])#读取0,1列连接两个表
sheet=d.merge(sheet1,sheet2,left_on='学号',right_on='学号')#按学号join2) 给成绩表加上字段“总分”列,并求出总分:
没有将缺考成绩设为0的话,求和时将不会’线代‘列一起求和
sheet.loc[sheet['线代']=='缺考','线代']=0#将缺考的成绩设为0
tem=sheet[['C#','线代','Python']]#提取列
sheet['总分']=tem.sum(axis=1)#求和,axis=1为行,0位列3) 增加列字段“等级”,标注每人“总分”的“优、良、中、及格、差”(270≤优,240≤良,210≤中,及格≤180,差≤180):
bins=[0,180,210,240,270,999]#分区间
labels=['差','及格','中','良','优']
sheet['等级']=d.cut(sheet.总分,bins,right=False,labels=labels)#right右区间开4) 计算各门课程的平均成绩以及标准差:
mean=sheet.mean()#所有的平均数
std=sheet.std()#所有的标准差######输出各科的平均分和标准差数据rint(f'''{sheet}n
C#的平均成绩为:{mean[1]},
C#的标准差为:{std[1]},
线代的平均成绩为:{mean[2]},
线代的标准差为:{std[2]},
Python的平均成绩为:{mean[3]},
Python的标准差为:{std[3]}.''')输出结果:5) 做"总分"成绩分布图,纵坐标表示成绩,横坐标表示学号或者姓名,画出总分的均分横线,让每位同学的总分圆点分布在均分线上下,以便于观察每位同学的成绩离开均分的距离:
做"总分"成绩分布图
lt.rcParams['font.sans-serif']=['Simhei']#设置可显示中文
total_mean=mean[4]#总分平均分
lt.title('学生总分分布图')
lt.bar(range(len(sheet['总分'])),sheet['总分'],width=0.8)
lt.xticks(range(len(sheet['总分'])),sheet['姓名'])
lt.axhne(total_mean,cor='red',nestyle='--')
lt.show()
附上完整代码
imortmatlotb.ylotaslt
imortandasasdaddress='ython实战.xlsx'
sheet1=d.read_excel(address,sheet_name='成绩表')
sheet2=d.read_excel(address,sheet_name='信息表',usecs=[0,1])#读取0,1列sheet=d.merge(sheet1,sheet2,left_on='学号',right_on='学号')#连接两个表sheet.loc[sheet['线代']=='缺考','线代']=0#将缺考的成绩设为0
tem=sheet[['C#','线代','Python']]#提取列
sheet['总分']=tem.sum(axis=1)#求和,axis=1为行,0位列bins=[0,180,210,240,270,999]#分区间
labels=['差','及格','中','良','优']
sheet['等级']=d.cut(sheet.总分,bins,right=False,labels=labels)#right右区间开mean=sheet.mean()#所有的平均数
std=sheet.std()#所有的标准差
#输出各科的平均分和标准差数据
rint(f'''{sheet}n
C#的平均成绩为:{mean[1]},
C#的标准差为:{std[1]},
线代的平均成绩为:{mean[2]},
线代的标准差为:{std[2]},
Python的平均成绩为:{mean[3]},
Python的标准差为:{std[3]}.''')#做"总分"成绩分布图
lt.rcParams['font.sans-serif']=['Simhei']#设置可显示中文
total_mean=mean[4]#总分平均分
lt.title('学生总分分布图')
lt.bar(range(len(sheet['总分'])),sheet['总分'],width=0.8)
lt.xticks(range(len(sheet['总分'])),sheet['姓名'])
lt.axhne(total_mean,cor='red',nestyle='--')
lt.show()
python给成绩表加上姓名列_Python数据分析基础练习相关推荐
- python给成绩表加上姓名列_Python Pandas 基本操作教学之成绩表
最近在学着用Pandas处理一些资料,不用还好,一用惊人,实在太猛了. 不过网络上已经太多Pandas介绍(重点是中文的文章很丰富,不用再练英文了) 本文就只是show off一下pandas的好,顺 ...
- python给成绩表加上姓名列_Python学习笔记 --第二章
Python语法基础 "#"号为注释符,建议缩进四个空格,Python大小写敏感. 数据类型 整数 0,2等等,以0x开头的为十六进制数 浮点数 1.58e9 字符串 用'或"括起来的任意文 ...
- python给成绩表加上姓名列_成绩表
mysql 查询语句的使用2020-12-17 17:32:24 DISTINCT 去重关键字 -- 查询哪些学生参加了考试 -- 思路:在成绩表中查询学生id 再看学生表 中的id 是否存在于成绩表 ...
- python部分引入total值的问题_Python数据分析基础与过程综述,关键数据预处理异常点的发现与处理,python,及,流程,回顾,重点,之,值...
一. python数据分析基础库的导入 基本是固定搭配 import numpy as np #科学计算基础库,多维数组对象ndarray import pandas as pd #数据处理库,Dat ...
- python查询mysql表名字动态日期_Python之路day11作业-MySQL表查询
#-*- coding: utf-8 -*- __author__ = 'caiqinxiong_cai' #2019/9/25 15:22#多表查询的作业 : https://www.cnblogs ...
- python处理多个excel数据_python 数据分析基础 day8-pandas读写多个excel文件
今天是读<python数据分析基础>的第8天,今天的读书笔记的内容为利用pandas读写多个excel文件,当中涉及到读写excel文件的多个工作表. 大致原理如下: glob.glob( ...
- 关联分析python牛奶面包_Python数据分析基础ReadingDay13_关联分析Apriori
reading Foundations for Analysis with Python Day 13 <Python数据分析基础>封面 之前我们已经完成了<Python数据分析基础 ...
- python 学生成绩表,生成数据表并且绘图
在学习python的过程中,老师出了一道题,感觉还不错,就写个博客记录一下: 1.已知有50个学生,期末参加5门考试,每一门的权重是(0.3,0.2,0.2,0.2,0.1) 1)随机生成学生基本信息 ...
- python如何统计累计每日的人数‘’_Python数据分析2019陕西高考(理工)成绩及填报志愿...
1.背景 侄子今年高考, 我姐说:既然你会数据分析, 耐组给咱分析一哈!(关中方言) 2.录取分数线 纳尼?三本呢?三本不存在的, 2019年陕西省二本生吞了三本. 数据不难找,度娘来帮忙, 将近几年 ...
最新文章
- LiteRouter 路由
- 【HDU - 5090】Game with Pearls (匈牙利算法,二分图匹配)
- 8、TypeScript-解构赋值
- python编程特点_Python基础(1)--Python编程习惯与特点
- linux下使用./configure报-bash: ./configure: No such file or directory
- ACL 2021 | 火山翻译成绩斐然
- RedisJson 横空出世,性能碾压ElasticSearch 和Mongo!
- 微信小程序之各类文件下载保存到本地
- linux 可道云_阿里云linux+kodexplorer可道云搭建私有云盘-阿里云开发者社区
- [南阳OJ-No.33]蛇形填数|在n*n方陈里填入1,2,...,n*n,要求填成蛇形。
- ServerSocket与Socket入门详解
- 《使用Python进行自然语言处理》学习笔记四
- scala基本操作分解实战
- Android ninja介绍
- 技术分享 | 排序(filesort)详细解析(8000 字长文)
- PROCAST-重力铸造分析流程
- 【C语言】C语言的三种基本控制结构-顺序、选择、循环
- waf和web应用防火墙的区别
- 线性回归分析中的哑变量
- 基恩士XG-XvisionEditor离线仿真