1 在sqlite中新建一个数据库data.db 2 在data.db中新建表score 3 将dafen.txt中数据输入到score中 4 建立一个python文件statistic.py,其具有以下功能:

A 连接数据库data.db,读取其中表score中的数据到列表; B 通过numpy.std(a, axis=None),计算每个裁判员的标准差,输出标准差最大的前3个裁判员的序号; C 利用matplotlib…pyplot中的polt和scatter的方法绘制曲线图和散点图在同一坐标内。
代码:

#使用sqlite3模块链接和操作SQLite数据库
#步骤一:导入相应的数据库模块和画图软件模块
import sqlite3,numpy
import matplotlib.pyplot as pltdef connection_database():#连接数据库函数并插入数据#步骤一:导入相应的数据库模块# 步骤二:建立数据库连接,返回Connection对象 这里我创建的数据库叫做db1.db#1.如果数据库存在,则访问数据可  2.数据库如果不存在,则在对应的路径下,建立一个名叫db1.db数据库#这里连接数据库时,数据库还没有创建,则创建数据库con = sqlite3.connect(r"路径/数据库名称")# 步骤三:直接使用连接对象con执行connection对象中的方法#创建一个score1表 sportman_ID 表示 运动员序号 judgei 表示 裁判序号con.execute("create table score1(sportman_ID primary key ,judge1,judge2,judge3,judge4,judge5,judge6,judge7,judge8,judge9,judge10,judge11,judge12)")#这返回游标cur 和 连接对象con#调用数据处理函数lis = processing_data()# 这里在score1表中插入多行数据 sportman_ID 表示 运动员序号 judgei 表示 裁判序号con.executemany("insert into score1(sportman_ID,judge1,judge2,judge3,judge4,judge5,judge6,judge7,judge8,judge9,judge10,judge11,judge12) values (?,?,?,?,?,?,?,?,?,?,?,?,?)",lis)# 提交con.commit()def processing_data():#读取文件并处理数据函数# 读入文件f = open("dafen.txt", 'r')# 将文件存储在lis列表中lis = []for line in f:# 使用map函数将每一行分数中的每个分数转化为float类型,然后在转化成list类型赋值给 ll = list(map(float, line.split()))lis.append(l)for i in range(10):# 这里在每一个运动员成绩的第一个位置插入运动员自己的编号lis[i].insert(0, i + 1) #这里插入数据是为了直观的反应每个运动员的分数return lisdef read_database():#读取数据库里面的数据 函数#这里连接数据库时,db1.db数据库已经建立了,则直接打开数据库con = sqlite3.connect(r"路径/数据库名称")#查询数据返回 存储在 lis1列表中中lis1=list(con.execute("select sportman_ID,judge1,judge2,judge3,judge4,judge5,judge6,judge7,judge8,judge9,judge10,judge11,judge12 from score1 "))#建立一个judge_score二维数组用来裁判员打的分数judge_score = [[0] * 10 for i in range(12)]#原始数据中,同一个裁判对不同运动员打的分数是一列一列的#这两个for循环是为了将 一列的分数 转化为 一行的分数,#做这一步是为了下面直接调用numpy里面的求标准差的函数for i in range(12):  # 裁判for j in range(10):  # 分数judge_score[i][j] = lis1[j][i + 1]#返回数据return judge_scoredef standard_deviation(): #求标准差函数#调用 读取数据库里面的数据 函数judge = read_database()# 存放每个裁判的标准差和裁判的序号standard_sort = []  # 列表中的元素时元组类型 (a,b) a是裁判序号  b是裁判的标准差 ,这个为了排序standard_plot = []  # 这个列表是为了画图用for i in range(10):standard_plot.append(round(numpy.std(judge[i], ddof=1), 3))standard_sort.append((i, round(numpy.std(judge[i], ddof=1), 3)))#调用sort 函数 降序排列standard_sort.sort(key=lambda x:x[1],reverse = True)return standard_plot,standard_sortdef plot():#画图函数# 解决坐标轴中文乱码问题standard_plot,standard_sort = standard_deviation()for i in range(10):print("第{0:3}名 {1:4}号裁判  标准差:{2:5.2f}".format(i+1,standard_sort[i][0]+1,standard_sort[i][1]))xlist =[] # x 轴坐标的取值for i in range(1,11):xlist.append(i)# 解决坐标轴中文乱码问题plt.rcParams['font.family'] = 'sans-serif'plt.rcParams['font.sans-serif'] = 'SimHei'# 设置坐标轴标签plt.xlabel("裁判序号")plt.ylabel("标准差")plt.plot(xlist, standard_plot)plt.scatter(xlist, standard_plot)plt.show()if __name__=="__main__":connection_database()read_database()standard_deviation()plot()

我这个代码从数据库的建立,数据的输入,数据的读取,求标准差,画图都是在代码中实现的。

这段代码中的“路径/数据库名”,自己当时的情况所建立

 con = sqlite3.connect(r"路径/数据库名称")

在数据库中插入多行数据时,这里注意一点,自己在建立数据库时,创建表的时候,自己创建了多少个字段名,values后面就要加多少个问好。我在创建字段的时候一共创建了13个字段,所以我后面一共有13个问号。

con.executemany("insert into score1(sportman_ID,judge1,judge2,judge3,judge4,judge5,judge6,judge7,judge8,judge9,judge10,judge11,judge12) values (?,?,?,?,?,?,?,?,?,?,?,?,?)",lis)

画图时,在给坐标轴添加标签时,要注意中文乱码的问题

    # 解决坐标轴中文乱码问题plt.rcParams['font.family'] = 'sans-serif'plt.rcParams['font.sans-serif'] = 'SimHei'# 设置坐标轴标签plt.xlabel("裁判序号")plt.ylabel("标准差")

这段代码我是直接输出了所有裁判标准差的排序

 for i in range(10):print("第{0:3}名 {1:4}号裁判  标准差:{2:5.2f}".format(i+1,standard_sort[i][0]+1,standard_sort[i][1]))

结果:
数据库


结果

总结

仅供参考!欢迎大家批评指正!!!!

Python实验数据处理相关推荐

  1. python处理实验数据,Python在热敏电阻测量实验数据处理中的应用

    物理实验数据处理一般都利用计算机将数据转化为合适的图像,以便于我们分析.Python是一种面向对象的.动态的程序设计语言,具有非常简洁而清晰的语法.高效率的高层数据结构,既可以用于快速开发程序脚本,也 ...

  2. 基于python对密立根油滴实验数据处理改进

    基于python对密立根油滴实验数据处理改进 近似最大公约数 import math ac=1.34 def accuracy(x, y):return math.fabs(x - y) < a ...

  3. Python大数据处理库 PySpark实战 总结四

    Python大数据处理库 PySpark实战四 ETL 实战 实验数据来源 数据加载 观察资料 选择.筛选与聚合 机器学习实战 实验数据来源 数据加载 统计描述 清洗与变形 Pipeline 逻辑回归 ...

  4. 锂离子电池健康状态估计简介(一):基于Python的数据处理计算SOH,RUL,CCCT,CVCT

    锂离子电池无论是在军用还是民用领域都得到了广泛的应用,在锂离子电池健康评估中主要关注的参数有SOH和RUL.准确对其进行健康状态(Stateof Health, SOH)评估及剩余使用寿命(Reman ...

  5. Python实验1——网络爬虫及数据可视化

    Python实验1--网络爬虫及数据可视化 一.实验目标与基本要求 实验目标 基本要求 二.主要知识点.重点与难点 主要知识点 重点 难点 三.实验过程设计 获取网页 获取数据 保存到数据库 数据预处 ...

  6. python基础代码库-Python基础数据处理库-NumPy

    最近更新:2017-07-19 NumPy是Python做数据处理的底层库,是高性能科学计算和数据分析的基础,比如著名的Python机器学习库SKlearn就需要NumPy的支持.掌握NumPy的基础 ...

  7. python实验报告代写_TensorFlow作业代写、代做Python程序语言作业、代写github课程作业、Python实验作业代写...

    TensorFlow作业代写.代做Python程序语言作业.代写github课程作业.Python实验作业代写 日期:2019-07-10 10:34 Python Practical Examine ...

  8. 代写python作业费用标准_代做159.272作业、代写Programming Paradigms作业、代做Python实验作业、代写Java/c++编程作业代写Database|代做R...

    代做159.272作业.代写Programming Paradigms作业.代做Python实验作业.代写Java/c++编程作业代写Database|代做RComputational Thinkin ...

  9. Python空间数据处理环境搭

    Python空间数据处理环境搭 Conda的下载和安装 什么是Conda? 官方定义:Package, dependency and environment management for any la ...

最新文章

  1. Oracle教程之四招提高Oracle位图索引的使用效果
  2. 二叉树和为某种所有路径
  3. 【转】CLR Profiler 性能分析工具 (转)
  4. java配置springmvc_告别XML 使用JAVA配置SpringMVC
  5. 总结nodejs的优缺点
  6. Java多线程(一)——多线程实现方法和生命周期
  7. cocos2d-基本概念(5)-Effects 效果
  8. SpringMVC注解@RequestParam(转)
  9. 分布式事务解决方案之最大努力通知
  10. 推荐《与孩子一起学编程》,与孩子一起开启pathon编程之路吧
  11. java开发英语词典app_英语词典app哪个好 5款好用的英语词典app推荐
  12. 5V升压8.4V,5V转8.4芯片电路图
  13. android 设置-关于手机-连续点击版本 打开开发者模式的功能实现
  14. 计算机管理员权限设置在哪里设置方法,计算机管理员权限在哪里设置 电脑系统如何设置管理员权限...
  15. [解题报告]Ural 1011 Conductors
  16. 用Mothur制作OTUtable
  17. Spring WebFlux框架概述
  18. 免费!在线WORD转PDF的方法分享
  19. 覃超数据结构(二) 栈和队列
  20. Cenots Oracle11g设置开机自启动

热门文章

  1. RK3399 Android7/8 system vendor分区挂载参数
  2. python设计一个date类数据成员有年月日_设计一个日期类Date,包括年、月、日等私有成员。要求实现日期的基本运算,例如某日期加上天数或减去天数...
  3. 拍掉灰尘,老想法比新想法更管用
  4. C# 使用WebSocket创建聊天室案例
  5. 和2016年的自己握手言和
  6. tensorflow自定义op:梯度
  7. css实现 元素/图片上下跳动 左右跳动 css动画
  8. 视频采集工具 youtube-dl 接口介绍
  9. #HTML5 Web App项目秀#国内首款大型HTML5页游《黎明帝国》开发背后
  10. 使用pyqt和pyautogui来实现自动输出英文文本