Python数据分析与可视化教案6.1 成绩数据预处理与分析_第1页
Python数据分析与可视化教案6.1 成绩数据预处理与分析_第2页
Python数据分析与可视化教案6.1 成绩数据预处理与分析_第3页
Python数据分析与可视化教案6.1 成绩数据预处理与分析_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、6.1成绩数据预处理与分析学生成绩是表达学生学习能力水平的重要数据之一。如何从各学期、各科目的大量学 生成绩中快速准确读取分析学生的综合能力,成为学校各项工作的重要数据支持。一、数据源本案例以某年级1班到5班的数学、语文、英语、计算机四门学科的期末成绩为例, 对其进行数据分析,数据文件为score.xls,如图6-*所示。白X剪切 粘贴力复制,-y格式刷剪贴板宋体B / U 字体11 -n晨 笠.三三三涉,哥自动换行室春建运运幽合并后居中,对齐方式Q常规N38 GA性别A开始 插入 页面布局 公式 数据 审阅 视图文件12345678910111213141592101921029210392

2、104921059210692107921089210992110921119211292113161718192021222324 OCT92114921159211692117921189211992120921219212292123男男男女女女女女男女男男地区数学语文英语计算机江苏-无锡85313465安徽-黄山70462150安徽-芜湖90848292江苏-南京94855190江苏-连云港82886185山东-潍坊80856192江苏-南京87784193四川-成都92716185江苏-苏州87755275山东-济南76776587江苏-盐城86595087江苏-苏州92739271

3、安徽-黄山 88689083BCD E F G H女女出班2江苏-常州 四川-成都 江苏-盐城 江苏-苏州 安徽-合肥 江苏-常州 安徽-芜湖 江苏-常州 江苏-无锡 江苏-盐城,_,卜在学住二 3班4班5班均928587778193988791923n815678625457537851488592938561413966533290838781796777697268图6-*数据源二、要求.查询语文和英语都较好的同学。.根据四科成绩,计算总分,对总分进行排名,查看名次的大概情况。.计算总分的平均分和中位数,并进行比拟。.计算江苏省学生四门学科的平均分,并加以比拟。.根据总分生成总分段,并分

4、析哪个总分段的比例最高。.总分等级为C的学生中,计算不同城市学生的平均分,并加以比拟。三、步骤步骤1 :导入库,设置参数。导入所需要的库pandas,利用pd.set_option解除显示宽 度的显示,设置数据对齐。步骤1代码如下:import pandas as pdpd.set_option(display.width,None)pd.seCoptionCdisplay.unicode.easLasian-WidthTrue)步骤2:数据拼接。利用循环语句分别导入1班、2班、3班、4班、5班的数据,并 利用append将其合并为一个数据,命名为data,并查看数据的行数、列数和列名。步骤2

5、代码如下:data = pd.read_excel(nc:/data/score.xlsn,sheet_name=0)for i in range(l,5):data_append = pd.read_excel(nc:/data/score.xls,sheet_name=i) print(data_append)data = data.append(data_append,ignore_index=True)输出结果如图6-*所不。Run:6-1C:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/6-

6、1.py数据的行数=300 数据的列数=7部 三 数据的所有列名为:index(学号,性别,地区,数学,语文,英语,计算机dtype=object)*” Process finished with exit code 0图6-*步骤2输出结果步骤3 :数据查询。(1)查询数据学号与四门学科的前5行。(2)查询语文和英语都大于90分的数据。步骤3 (1)代码如下:print(data学号,嗷学?语文?英语?计算机皿:5)输出结果如图6-*所不。Run:6-1C:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjf

7、x/6-1.py学号数学语文英语计算机09210185313465I=519210270462150292103908482923921049485519049210582886185Process finished with exit code 0图6-*步骤3 (1)输出结果步骤3 (1)代码如下:print(data.loc(data语文】85) & (data英语85)输出结果如图6-*所不。Run:6-1 个 C:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/6-l.py学号性别地区数学语文

8、英语计算机3292133女江苏连云港828893856592206男安徽-合肥878690746892209女江苏-连云港8386938210292243男四川-成都8186866113092311男江苏-盐城5986908713292313女安徽-黄山6888928313392314男江苏-常州8292939015092331男安徽-芜湖84909392Process finishedwith exitcode 0图6-*步骤3 (2)输出结果步骤4 :添加新列。(1)生成新列“总分”,计算公式为:总分=数学+语文+英语+计算机。(2)将“地区”列拆分为两列,分别命名为“省”、“城市”。步骤

9、4 (1)代码如下:data总分=data数学】+ data语文】+ data英语+ data计算机】步骤4 (2)代码如下:data省=data/地区.str. split,,expand=True)Odata/城市=data,fbX.str.split(,-,expand=True)lprint(data.head()输出结果如图6-*所不。Run:6-1C:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/6-1.py0学号性别地区 江苏-无锡数学85语文英语计算机总分65省215城市92101男3

10、134江苏无锡5192102男安徽-黄山70462150187安徽黄山*292103男安徽-芜湖90848292348安徽芜湖392104女江苏-南京94855190320江苏南京1EP492105女江苏-连云港82886185316江苏连云港Process finished with exit code 0图6-*步骤4输出结果步骤5:数据排名。根据总分按照降序排名,如果总分相同,按照最小排名计算,并 输出“学号”、“总分”、“总分排名”的前5行,将排名结果存放在新列“总分排名”。步骤5代码如下:data = data. sort_values(by =总分ascending=False)d

11、ata总分排名=data,/l,.rank(method=min,ascending=False)print(data学号;总分,总分排名R:5)输出结果如图6-*所不。Run:6-1C:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/6-l.py学号 总分 总分排名91922323621.0531921323612.0150 923313593.0133 923143574.090922313525.0Process finished with exit code 0图6-*步骤5输出结果步骤6 :数

12、据分段。根据总分进行分段,总分在300最大总分为A, 250299为 B. 200249为C, 0199以下为D,将排名结果存放在新列“总分等级”。步骤6代码如下:data总分等级=pd.cut(data总分bins=0,199,249,299,data,.max(),print(data.head()输出结果如图6-*所示。Run:6-1 个 C:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/6-1.py学号性别地区数学语文英语计算机总分省城市总分等级092101男江苏-无锡85313465215江

13、苏无锡CI=5192102男安徽-黄山70462150187安徽黄山D丑292103男安徽-芜湖90848292348安徽芜湖A392104女江苏-南京94855190320江苏南京A492105女江苏-连云港82886185316江苏连云港AProcess finished with exit code 0步骤7 :描述性统计分析(1)计算总分的平均分和中位数。(2)计算江苏省四门学科的平均分。(3)统计总分不同等级比例,比例保存百分比两位小数。步骤7 (1)代码如下:print(总分的平均值=%.2f%data总分.mean。)print(总分的中位数=%.2f*%data总分.media

14、n。)输出结果如图6-*所不。Run:6-1AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/6-1.py总分的平均值=278.53 总分的中位数=278.00Process finished with exit code 0 图6-*步骤7 (1)输出结果步骤7 (2)代码如下:datajoc 二 data.locdata省二=江苏for i in数学?语文,英语?计算机:mean = data_loci.mean()print(江苏省s 的平均分二%.2f%(i,mean) 输出结果如图6-*所

15、不。 Run:6-1A . C:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/6-l.py 江苏省数学的平均分=78.19 江苏省语文的平均分=65.59= 5 江苏省英语的平均分=61.93过 江苏省计算机的平均分=75.41* 二Process finished with exit code 0图6-*步骤7 (2)输出结果步骤7 (3)代码如下:count = data总分等级.value_counts(normalize=True,ascending=False)count = count.a

16、pply(lambda x:.2f%(x*100)print(总分不同等级的比例为:n”,count)输出结果如图6-*所示。Run:6-1AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/6-l.py总分不同等级的比例为:C56.33%D28.33%丑B13.00%,音A2.33%Name:总分等级,dtype: objectProcess finished with exit code 0图6-*步骤7 (3)输出结果步骤8 :分类汇总。统计总分为C等级的学生的不同城市的总分平均分。步骤8代码如

17、下:data_loc = data.locdata总分等级=Cresult2 = dataoc.groupby(by=城市)总、分.mean()result2 = round(result2,2)print(总分等级为C等级的不同城市总分平均分为:n”,result输出结果如图6-*所不。Run:6-1AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/6-l.py总分等级为(:等级的不同城市总分平均分为:城市=方南京215.50三成都247.00扬州212.25Mi无锡218.25潍坊230.00盐城237.33芜湖222.10苏州242.50连云港236

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论