完整代码 sklearn代码18 python自动化处理数据

导包

import numpy as npimport pandas as pdfrom pandas import Series,DataFrameimport matplotlib.pyplot as plt
%matplotlib inline
data = pd.read_excel('./18级高一体测成绩汇总.xls')
data

data[:45]


多余的班级信息

cond = data['班级']!='班级'  # 删除多余的班级信息
data = data[cond]
data[:45]


空数据处理

data.fillna(0,inplace=True)  #没参加处理为0
# 没有空数据了
data.isnull().any()

def convert(x):    #将数据转换为成绩if isinstance(x,str):minute,second = x.split("'")minute = int(minute)second = int(second)return minute + second/100.0else:return xdata['1000米'] = data['1000米'].map(convert)data.head()

score = pd.read_excel('体侧成绩评分表.xls',header = [0,1])
score

# 男生的成绩进行了转化
def convert(item):m,s = item.strip('"').split("'")m,s = int(m),int(s)return m + s/100.0
score.iloc[:,-4] = score.iloc[:,-4].map(convert)
# 女生成绩,进行转化
def convert(item):m,s = item.strip('"').split("'")m,s = int(m),int(s)return m + s/100.0
score.iloc[:,-2] = score.iloc[:,-2].map(convert)
score


对男1000米以及男50米进行处理

data.columns = ['班级', '性别', '姓名', '男1000', '男50米跑', '跳远', '体前屈', '引体', '肺活量', '身高', '体重']
data['男50米跑'] = data['男50米跑'].astype(np.float)    #数据类型转换
score['男1000']
for col in [ '男1000', '男50米跑']:#     获取成绩的标准s = score[col]def convert(x):for i in range(len(s)):if x <= s['成绩'].iloc[0]:if x == 0:return 0   #没有参加这个项目return 100elif x > s['成绩'].iloc[-1]:return 0 #跑的太慢elif (x > s['成绩'].iloc[i - 1]) and (x <= s['成绩'].iloc[i]):return s['分数'].iloc[i]data[col + '成绩'] = data[col].map(convert)
data

for col in ['跳远', '体前屈', '引体']:s = score['男'+col]def convert(x):for i in range(len(s)):if x >= s['成绩'].iloc[i]:return s['分数'].iloc[i]return 0data[col + '成绩'] = data[col].map(convert)

data.head()

cols = ['班级', '性别', '姓名', '男1000','男1000成绩', '男50米跑', '男50米跑成绩','跳远', '跳远成绩', '体前屈', '体前屈成绩',  '引体', '引体成绩','肺活量''身高','体重']
# 根据索引的顺序去DataFrame中取值
data = data[cols]
data.head()

def convert(x):if x > 100:return x/100else:return x
data['身高'] = data['身高'].map(convert)
data['BMI'] = (data['体重']/(data['身高'])**2).round(1)
'''≤16.4
23.3~26.3'''
def convert_bmi(x):   #在取名时可以更加准确比如取为convert_bmiif x >= 26.4:return 60elif (x <= 16.4) or (x >=23.3 and x <= 26.3):return 80elif x >=16.5 and x <=23.2:return 100else:return 0data['BMI_score'] = data['BMI'].map(convert_bmi)
data.head(50)

# 统计分析
# 定义需求,画图,对比分析
(data['BMI_score'].value_counts()).plot(kind = 'pie',autopct = '%0.2f%%')

(data['BMI_score'].value_counts()).plot(kind = 'bar')  #使用条形图来表示

data.groupby(['男1000成绩'])['BMI_score'].count().plot(kind = 'bar')   #使用条形图来表示男1000 米的

sklearn笔记26 pandas批量处理成绩表相关推荐

  1. python给成绩表加上姓名列_Python Pandas 基本操作教学之成绩表

    最近在学着用Pandas处理一些资料,不用还好,一用惊人,实在太猛了. 不过网络上已经太多Pandas介绍(重点是中文的文章很丰富,不用再练英文了) 本文就只是show off一下pandas的好,顺 ...

  2. 大数据学习笔记19:MR案例——汇总三科成绩表文件

    文章目录 一.提出任务 二.准备工作 1.启动hadoop服务 2.上传数据文件到HDFS 3.创建Maven项目CalculateTotalPoints 4.修改pom.xml文件,添加依赖 5.创 ...

  3. Python使用openpyxl和pandas处理学生成绩Excel文件实用案例

    推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),清华大学出版社,2020年6月第1次印刷 京东.天猫.当当均已上架,可以选择自己常用平台搜 ...

  4. 2016版excel_Python使用openpyxl和pandas处理学生成绩Excel文件实用案例

    推荐图书:<Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),清华大学出版社,2020年6月第1次印刷 京东.天猫.当当均已上架,可以选择自己常用平台搜索 ...

  5. pandas笔记(pandas Data Structures)

    pandas笔记(pandas Data Structures) 生信start_site已关注 32020.06.15 03:02:37字数 766阅读 509 pandas包含数据结构和数据操作工 ...

  6. 程序的加载和执行(六)——《x86汇编语言:从实模式到保护模式》读书笔记26

    程序的加载和执行(六)--<x86汇编语言:从实模式到保护模式>读书笔记26 通过本文能学到什么? NASM的条件汇编 用NASM编译的时候,通过命令行选项定义宏 Makefile的条件语 ...

  7. python 批量增加文件前缀_Excel VBA工作薄 7.5批量增加工作表前缀/后缀 工作表区分更方便...

    前景提要() 上节我们通过VBA成功的将创建工作表和工作表重命名这两个动作同时结合在一起,一次性完成了,大大的提高了我们的工作效率,解放了生产力,既然说到了工作表的重命名,很多小伙伴们就有话题了,有小 ...

  8. Python 数据分析与展示笔记4 -- Pandas 库基础

    Python 数据分析与展示笔记4 – Pandas 库基础 Python 数据分析与展示系列笔记是笔者学习.实践Python 数据分析与展示的相关笔记 课程链接: Python 数据分析与展示 参考 ...

  9. ​【Python基础】一文看懂 Pandas 中的透视表

    作者:来源于读者投稿 出品:Python数据之道 一文看懂 Pandas 中的透视表 透视表在一种功能很强大的图表,用户可以从中读取到很多的信息.利用excel可以生成简单的透视表.本文中讲解的是如何 ...

最新文章

  1. 解决ajax劫持,Ajax实现检测网站劫持的方法
  2. python聚类分析sklearn_如何使用sklearn k-mean对数据进行聚类分析?
  3. 分布式系统概念 | 分布式理论:CAP、BASE
  4. 数据完整性(python 版)
  5. layui报错 “Layui hint: 模块名 xxx 已被占用“ 的问题解决方案
  6. C#的变迁史 - C# 4.0 之线程安全集合篇
  7. 软件工程文档软件测试,关于软件工程血的教训之文档管理
  8. 轻量级日志收集转发 | fluent-bit外部插件详解(三)
  9. 高校/中职大数据实验室建设方案
  10. 理解密码学中的双线性映射
  11. JAVA调起clearcase_Eclipse集成配置管理工具ClearCase (ccrc_for_eclipse)
  12. python里的def方法中->代表什么意思
  13. 不良 : Cloudera Manager Agent 的日志目录位于可用空间小于 1.0 吉字节 的文件系统上。 /var/log/cloudera-scm-agent(可用:434.8 兆字节 (
  14. JVM(4)-MAT: 支配树 Dominator Tree
  15. CodeForces - 407C C - Curious Array 高阶差分序列
  16. dat文件导入cad画图步骤_准确又高效的读入CAD几何——详解Fluent Meshing导入文件的几种方法...
  17. 浅谈iPhone OS(iOS)架构
  18. PHP做后端编程的入门
  19. 3脚送话器内部电路图_话机送、受话器的修理与电路检修
  20. 手把手教你用LVS-DR模式搭建Nginx集群

热门文章

  1. Python之路【第三篇】:文件操作
  2. 全球最大同性交友平台的“黑历史”
  3. 基于RISC-V架构的开源处理器及SoC研究综述
  4. 小程序如何实现获客拉新提升复购率双营收?优惠券策略了解一下
  5. loadrunner压测过程常出现错误和处理方法
  6. BZOJ 3891 USACO 2014 Dec Piggy Back 搜索 最短路
  7. 2020-web前端-JavaScript基础笔记
  8. EarlyStopping早停法的实现原理
  9. freemarker/ftl模板/导出doc 单元格合并注意事项
  10. Mybatis(见资源)