在上一篇中咱们跟随大神的脚步,探讨了学生的消费数据,消费数据对本次竞赛预测来说很重要。本篇将探索寝室门禁、图书借阅、图书馆门禁和学生成绩等一些和学生学习相关的数据,来看看学生的品行如何,虽然资助金和奖学金的性质不太同样,但咱们毕竟仍是想资助那些品学兼优的学生,而不是资助虽然家境很贫寒但不学无术的学生。函数
因此本篇探索的数据能够比较好的反应出这些状况。固然这里面还隐藏了更好玩的话题,学霸去哪了?话很少说,let's go!学习
1、数据介绍spa
OpenFEA已经将上述数据存放到了OpenFEA在线试用环境的match/fund目录下,具体在www.openfea.cn下载专区里有介绍。.net
2、数据探索排序
(一) 寝室门禁数据分析索引
一、 加载寝室门禁数据字符串
由于原始数据没有列名,因此加with (header=-1)为各列自动填写列名。字符串处理
加载寝室门禁数据数据分析
二、 修改字段名it
分别用id、time、isout表示学生编号、进出寝室时间、进出寝室。
三、 提取时间中的小时为单独的一列
四、 修改hour字段类型为数字类型
五、 过滤出深夜出入寝室的人
六、 分组统计
按照id字段进行分组统计,统计每一个学生深夜进出寝室的次数。
七、 绘图
图形展现学生深夜出入寝室的数据。
2131多条记录中,共涉及1297人,最多的34次,最少的1次,平均2.08次。元芳,你怎么看呢?
(二) 图书借阅数据分析
一、加载图书借阅数据
因为原始数据中有逗号,会在加载时被认为是分隔符,因此咱们须要采用一个全文没有出现的分割符`,将数据按一整行加载成为DF表。同时因为原始数据没有列名,须要为各列自动填写列名,因此参数处需添加with (header=-1,sep="`") 。
二、修改字段名
三、字符串处理
经过lambda函数将raw字段中的”,”和,”替换为$,而后按分隔符$分割为几个不一样的list,具体表达式为x: x.replace ('","','$').replace (',"','$').split("$")
四、分割列
将raw字段按照分隔符分割为几个不一样的列。
此数据主要能够分析借阅次数(本书),阅读时间等,要想再深刻一些能够分析阅读的门类等,就不详细介绍了。
(三) 图书馆门禁数据分析
一、 加载图书馆门禁数据
由于原始数据没有列名,因此加with (header=-1)为各列自动填写列名。
二、修改字段名
分别用id、gate、time表示学生编号、门禁编号、时间。
三、 分组统计
按照id字段进行分组统计,统计每一个学生进出图书馆的次数。
四、 绘图
图形展现学生出入图书馆的数据。
最多的学生是1485次,最少的竟然两年只去1次(惨不忍睹,都忙啥了?),平均是122次。去的次数最多的是否是学习成绩最好呢,一会咱们验证一下。
(四) 学生成绩数据分析
一、 加载学生成绩数据
由于原始数据没有列名,因此加with (header=-1)为各列自动填写列名。
加载学生成绩数据
二、 修改字段名
分别用id、college、score表示学生编号、学院编号、成绩排名。
成绩数据就这样了,咱们来看一下图书馆次数最多的学生成绩到底怎么样,是真的一份耕耘一份收获,仍是在磨洋工装样子呢。
三、 对分组统计好的图书馆门禁数据进行重置索引
四、修改该数据的字段名,将index修改成id。
五、取去图书馆次数最多的100人
六、和成绩数据进行关联
七、设置id列为索引
八、删除college列
九、将数据按照进出图书馆次数进行排序
十、绘图
黄线表明去图书馆的次数,红线表明成绩的排名,看完这个也很心塞啊!其中最好的才排学院30名,比比都是500名开外,都在图书馆干吗了呢?
好吧,再来看看学院的学霸们(前100名)到底去不去图书馆呢?
十一、取每一个学院的前100名
十二、和分组统计后的进出图书馆书架进行关联
1三、设置id字段为索引
1四、因为count字段中有控制,因此咱们用数字0来填充空值
1五、删除college列
1六、将数据按照成绩和进出图书馆次数进行排序
1七、修改字段名,分别将id和count修改成“成绩排名”和“去图书馆次数”
看这满屏的0,不知你做何感想?禁不住要问学霸去哪了?这仍是之前的大学图书馆吗?
1八、绘图
红色表明成绩,黄色表明去图书馆的次数,去图书馆的平均线是105,看来"死读书"是愈来愈没市场了。^V^
有兴趣的同窗,能够将学霸的数据和深夜外出的数据碰一下,看看学霸到底去哪了。