朋友你好,作为一个刚刚入门计算机专业的普通大学生,很高兴认识你,作为本次大创项目的主题,我们对体测成绩进行了数据分析,这篇文章就是对本次分析的一个概括与总结,如果可以给你一些启发,就最好不过了!
那么我们开始吧(注意:由于本人浅薄的知识积累以及刚刚入门的身份,本人的代码不可避免地会存在问题,希望您可以提出建议,感谢。)
工具:pycharm,navicat,mysql client
首先我们对数据来源进行分析,本次数据是以数据库的形式给我们的,我们对数据进行了分析,
表头大概是这样的,出于保密协议,我只可以展示其中的部分表头(雾),不过这并不是问题的关键,关键在于数据的处理。
我们先要明白的一点是,这个数据属于面板数据(应该),举个例子来说,如果一个人是2015年入的高中,那么它将会是高中2015级,但是我们可以发现他的体测成绩包括2015,2016,2017三年的,所以我们首先要做的就是对这些数据进行如上的筛选,这里用的是mysql语句
举个例子,如图所示
手动打码(嘿嘿)。
由于本人的任务板块是多个子任务的集合,我们先对各个任务进行了分类,其结果是分成了以下三类:1.对于BMI的的趋势的分析为例的正态分布图的分析 2.关于时间序列的聚类 3.通过体测成绩对耐力值进行分析
我们首先对第一种进行进行分析,也就是说对于趋势的分析,这里提供了两种方法,一种是图表层面的正态分布曲线,而另一种则是通过增长率进行数据层面的分析。结果代码如图所见。
当然相信大家都看出来了,这个代码本身并没有什么难度,(笑),这是因为我是新手思路很清晰,就是对于不同年级进行分类求取平均值之后,再通过循环的方法使它画出正态分布图,这里我个人认为,由于不同年级的人在每过一年之后会上升一级,而原本的下一级又会上升到上一级,所以我们可以不使用分开的方法,而是以时间为基本单位,这样我们可以看出整体的变化趋势。当然剩下的部分大抵是类似的。
接下来我会对这些分别简单的列举以及看结果
1. 各年级的BMI分布
2. 5市肥胖是否相同
3. 城乡BMI分布是否相同
首先是各个年级的BMI分布,显然因为上述原因,各年级的BMI也可以同理取各个年级的分组平均值。
接下来是对5市进行分析,这里要说的是,事实上由于我们并没有直接的市这一列,所以我们需要将一个把学校代码与学校名称对应的表通过链接的方式合并 当然代码并不复杂。
无论如何这个代码的灵魂我本人认为是其中使用的mysql语句,这是无论如何的关键所在。
至于城乡分析结果如上,本篇文章暂时到这里就结束了,剩下的一些比较难的内容我将会在下一篇文章向大家介绍