1 数据概览

学生课程成绩:studentID、name、english、chinese、math,存在一定缺失值

2 任务定义

基于学生课程成绩文件,使用pandas和sqlite3将学生信息输入SQLite数据库,请在完成对应数据库操作后分析学生课程成绩信息,计算各科目平均分并给出总分排名。

3 实现步骤

3.1 利用pandas读取学生信息

import pandas as pd
import sqlite3
# 利用pandas读取数据
student_df=pd.read_csv("./Dataset/student_grades.csv",encoding='utf-8-sig')

3.2 利用sqlite3创建数据库和学生表

# 创建学生成绩数据库
conn=sqlite3.connect("./Database/Student_grade.db")
## 创建游标
cursor=conn.cursor()
## 创建成绩表
try:
    # 判断表是否存在, 存在则先删除
    dropif_sql='Drop TABLE IF EXISTS student_grades;'
    create_sql='''
        CREATE TABLE student_grades
        (
            studentID varchar(64),
            studentName varchar(64),
            scoreEnglish float(64),
            scoreChinese float(64),
            scoreMath float(64)
        )
    '''
    cursor.execute(dropif_sql)
    cursor.execute(create_sql)
except:
    print("Create table failed!")

3.3 利用sqlite3将学生信息存入数据库

# 将学生信息存入数据库
for i in range(student_df.shape[0]):
    print(student_df.loc[i,:].to_list())
    # 插入语句
    insert_sql='''
        INSERT INTO student_grades(studentID, studentName, scoreEnglish, scoreChinese, scoreMath)
        Values('%s','%s','%f','%f','%f')'''%(
            str(student_df.loc[i,'StudentID']),
            str(student_df.loc[i,'name']),
            student_df.loc[i,'english'],
            student_df.loc[i,'chinese'],
            student_df.loc[i,'math'],
        )
    # 执行语句
    cursor.execute(insert_sql)
    # 事物提交
    conn.commit()

3.4 将李四数学成绩70录入SQLite数据库

# 录入李四的数学成绩
grade_LiSi=70
# 更新语句
update_sql='UPDATE student_grades SET scoreMath={} WHERE studentID=10002'.format(grade_LiSi)
# 执行语句
cursor.execute(update_sql)
# 事物提交
conn.commit()
# 查询录入李四成绩后的信息
select_sql='SELECT * FROM student_grades;'
# 执行语句
results=cursor.execute(select_sql)
# 遍历输出
for info in results.fetchall():
    print(info)

3.5 将数据库中的王五数学成绩改为85

# 更新王五的数学成绩
grade_WangWu=85
# 更新语句
update_sql='UPDATE student_grades SET scoreMath={} WHERE studentID=10003'.format(grade_WangWu)
# 执行语句
cursor.execute(update_sql)
# 事物提交
conn.commit()
# 查询王五的成绩
select_sql='SELECT * FROM student_grades WHERE studentID=10003;'
# 执行语句
results=cursor.execute(select_sql)
# 遍历输出
for info in results.fetchall():
    print(info)

3.5 计算学生的各科平均分,并给出总分排名

# 查询数据
select_sql='SELECT * FROM student_grades;'
# 执行语句
results=cursor.execute(select_sql)
# 计算各科平均分以及总分排名
english_lst=[]
chinese_lst=[]
math_lst=[]
total_dct={}
for info in results.fetchall():
    english_lst.append(info[2])
    chinese_lst.append(info[3])
    math_lst.append(info[4])
    total_dct[info[1]]=sum(info[2:])

# 计算平均分的函数
def average_score(lst):
    return round(sum(lst)/len(lst),2)

# 输出结果
print("英语平均分为:", average_score(english_lst))
print("语文平均分为:", average_score(chinese_lst))
print("数学平均分为:", average_score(math_lst))
print("总成绩排名为:", sorted(total_dct.items(), key=lambda x:x[1], reverse=True))

4 小小的总结

在Python中使用sqlite3:

连接数据库:conn=sqlite3.connect(filename),如果数据库不存在,会自动创建再连接。创建游标:cursor=conn.cursor(),SQL的游标是一种临时的数据库对象,即可以用来

存放在数据库表中的数据行副本,也可以指向存储在数据库中的数据行的指针。游标提供了在逐行的基础上操作表中数据的方法。

运用sqlite3运行SQL语句的框架:

① 定义sql语句,存储到字符串sql中

② 使用游标提交执行语句:cursor.execute(sql)

③ 使用连接提交事务:conn.commit()

到此这篇关于Python使用sqlite3第三方库读写SQLite数据库的文章就介绍到这了,更多相关Python读写SQLite数据库内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

Python使用sqlite3第三方库读写SQLite数据库的方法步骤的更多相关文章

  1. PhoneGap / iOS上的SQLite数据库 – 超过5mb可能

    我误解了什么吗?Phonegap中的sqlitedbs真的有5mb的限制吗?我正在使用Phonegap1.2和iOS5.解决方法您可以使用带有phonegap插件的原生sqliteDB,您将没有任何限制.在iOS5.1中,Websql被认为是可以随时删除的临时数据…

  2. ios – 设置DataBase的加密密钥(Sybase Unwired Platform)

    目前,我可以通过执行以下操作为本地数据库设置加密密钥:因此,当我的用户成功登录时,我收到以下错误:我认为正在发生的是,虽然数据库已成功创建,但仍然是加密的.我该如何解密?解决方法实际上这很简单,我每次开始会话时都需要这样做:

  3. XCode 3.2 Ruby和Python模板

    在xcode3.2下,我的ObjectiveCPython/Ruby项目仍然可以打开更新和编译,但是你无法创建新项目.鉴于xcode3.2中缺少ruby和python的所有痕迹(即创建项目并添加新的ruby/python文件),是否有一种简单的方法可以再次安装模板?我发现了一些关于将它们复制到某个文件夹的信息,但我似乎无法让它工作,我怀疑文件夹的位置已经改变为3.2.解决方法3.2中的应用程序模板

  4. ios – UIWebView中的WebSQL / SQLite数据库的最大大小(phonegap)

    我知道一般来说,Web应用程序的本地存储空间有5MB的限制.本地网页浏览应用程式是否也有这个限制?

  5. ios – 在没有XML的情况下更新sqlite数据库

    我的应用程序需要来自sqlite数据库的数据.它将附带此数据库的一个版本,但我需要定期更新它(很可能每月一次).通常情况下,我一直在通过我设置的一堆网络服务将我的应用程序的其他部分的更新作为XML发送,但我现在正在处理的这个特定数据库非常大(大约20-30MB),而且我当我尝试以这种方式发送时出现超时错误.我尝试将数据库放在我的公司服务器上,然后将其下载到NSData对象中.然后我将该数据对象保存

  6. ios – 我的用户对我的应用程序附带的SQLite数据库有多少访问权限?

    我正在开发一个iPad应用程序,它依赖于一个非常庞大的有价值信息数据库.我自己并不太熟悉这个设备.用户无法通过我的应用程序在任何地方直接查看数据库中的数据.有没有其他方式用户可以访问我的数据库中的数据?你所能做的就是确保在你的应用程序过时之前他们无法做到这一点.否则,请将数据保存在人们无法触及的服务器中.

  7. Swift版的SQLite帮助类

    sqliteHelper创建sqliteHelper类单例全局变量打开数据库创建示例数据表执行INSERT、UPDATE、DELETE语句执行sql语句返回结果数量执行返回单条记录执行sql返回结果集合执行一行数据

  8. Swift基本使用-函数和闭包(三)

    声明函数和其他脚本语言有相似的地方,比较明显的地方是声明函数的关键字swift也出现了Python中的组元,可以通过一个组元返回多个值。传递可变参数,函数以数组的形式获取参数swift中函数可以嵌套,被嵌套的函数可以访问外部函数的变量。可以通过函数的潜逃来重构过长或者太复杂的函数。

  9. 10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下

  10. 十一swift 使用SQLite

    下载下载地址:https://github.com/stephencelis/SQLite.swiftDonwloadZIP解压缩:尽量在MacOS下完成(双击压缩包)。引入项目1、添加:源码中找到“sql.xcodeproj”,建议在项目路径下建立文件夹“framework”,拷贝粘贴“sqlite.xcodeproj”2、添加至项目根目录3、添加LinkedFrameworksandLibra

随机推荐

  1. 10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下

  2. python数学建模之三大模型与十大常用算法详情

    这篇文章主要介绍了python数学建模之三大模型与十大常用算法详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感想取得小伙伴可以参考一下

  3. Python爬取奶茶店数据分析哪家最好喝以及性价比

    这篇文章主要介绍了用Python告诉你奶茶哪家最好喝性价比最高,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

  4. 使用pyinstaller打包.exe文件的详细教程

    PyInstaller是一个跨平台的Python应用打包工具,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,下面这篇文章主要给大家介绍了关于使用pyinstaller打包.exe文件的相关资料,需要的朋友可以参考下

  5. 基于Python实现射击小游戏的制作

    这篇文章主要介绍了如何利用Python制作一个自己专属的第一人称射击小游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试

  6. Python list append方法之给列表追加元素

    这篇文章主要介绍了Python list append方法如何给列表追加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  7. Pytest+Request+Allure+Jenkins实现接口自动化

    这篇文章介绍了Pytest+Request+Allure+Jenkins实现接口自动化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. 利用python实现简单的情感分析实例教程

    商品评论挖掘、电影推荐、股市预测……情感分析大有用武之地,下面这篇文章主要给大家介绍了关于利用python实现简单的情感分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  9. 利用Python上传日志并监控告警的方法详解

    这篇文章将详细为大家介绍如何通过阿里云日志服务搭建一套通过Python上传日志、配置日志告警的监控服务,感兴趣的小伙伴可以了解一下

  10. Pycharm中运行程序在Python console中执行,不是直接Run问题

    这篇文章主要介绍了Pycharm中运行程序在Python console中执行,不是直接Run问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

返回
顶部