前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python处理Excel学生成绩

Python处理Excel学生成绩

作者头像
逍遥子大表哥
发布2021-12-19 11:42:14
2.5K0
发布2021-12-19 11:42:14
举报
文章被收录于专栏:kali blog

如何利用Python处理学生的成绩表呢?在实际问题中,我们常用excel来完成此工作。如计算平均分、总分、及格人数等。如何利用Python来完成此工作呢?

前期准备

  • Python3.9
  • 所需模块pandas openpyxl
  • 成绩表.xlsx

win10安装pyton环境

Python 安装包下载地址:https://www.python.org/downloads/

打开该链接,点击下图中的版本号或者Download按钮进入对应版本的下载页面,滚动到最后即可看到各个平台的 Python 安装包。

对前缀的说明:

Windows installer (64-bit)开头的是 64 位的 Python 安装程序;

Windows installer (32-bit)开头的是 32 位的 Python 安装程序。

对后缀的说明:

embeddable zip file表示.zip格式的绿色免安装版本,可以直接嵌入(集成)到其它的应用程序中;

executable installer表示.exe格式的可执行程序,这是完整的离线安装包,一般选择这个即可;

web-based installer表示通过网络安装的,也就是说下载到的是一个空壳,安装过程中还需要联网下载真正的 Python 安装包。

*注意勾选Add Python 3.9 to PATH,这样可以将 Python 命令工具所在目录添加到系统 Path 环境变量中,以后开发程序或者运行 Python 命令会非常方便。

继续点击下一步,这样便很快完成python的安装。

验证

在cmd中输入python可以看到回显,说明安装成功。

牛刀小试

代码语言:javascript
复制
print ("kali's blog https://blog.bbskali.cn")

这样便安装完成Python

Python处理excel

安装相应的模块,因为对excel的操作离不开python相应的库。这里我们用到了pandas openpyxl这两个库。

在cmd中执行下面命令安装即可!

代码语言:javascript
复制
python pip install pandas
python pip install openpyxl

需要注意的是,在pip安装过程中,速度相对比较慢。我们可以改变Python的源来提高下载速度。详情请参考下面这篇文章。

更换Pip下载源,让下载速度飞起来

Python的学习过程中,往往会学习到很多库,而安装各类库的时候,往往不尽人意,下载速度从几KB到十几KB。甚至下...

利用Python打开Excel

代码语言:javascript
复制
import  pandas as pd
import openpyxl
df=pd.read_excel('H:\chengji.xlsx', sheet_name='Sheet1') #读取指定表
print(df)

sheet_name为我们读取Excel中的表

求学生总分和平均分

所用到的函数

sum:求和

mean:平均分

需要注意的是 axis 0为列,1为行

代码语言:javascript
复制
import  pandas as pd
import openpyxl
df=pd.read_excel('H:\chengji.xlsx', sheet_name='Sheet1') #读取指定表
temp = df[["语文","数学","英语","物理","化学","道德与法治","历史","生地"]]
df["总分"] = temp.sum(axis=1) #axis 0为列,1为行
df["平均分"] = temp.mean(axis=1)

求每科目的平均分和最高分

代码语言:javascript
复制
import  pandas as pd
import openpyxl
df=pd.read_excel('H:\chengji.xlsx', sheet_name='Sheet1') #读取指定表
temp = df[["语文","数学","英语","物理","化学","道德与法治","历史","生地"]]
Total = df[["语文","数学","英语","物理","化学","道德与法治","历史","生地"]].mean()
Tota2 = df[["语文","数学","英语","物理","化学","道德与法治","历史","生地"]].max()

判断成绩数组中及格人数

代码语言:javascript
复制
df1 = df[df[['语文','数学','英语']] >= 90]
print('及格人数:',df1[['语文','数学','英语']].count())

判断参加考试的人数

代码语言:javascript
复制
df2 = df[['语文','数学','英语']]
print('考试人数:',df2[['语文','数学','英语']].count())

对数据进行保存

代码语言:javascript
复制
writer = pd.ExcelWriter('H:\ 2.xlsx')
writer.save()#文件保存
writer.close()#文件关闭

处理完成的效果

完整代码

代码语言:javascript
复制
# -*- coding: UTF-8 -*-
import  pandas  as pd
import openpyxl
df=pd.read_excel('H:\chengji.xlsx', sheet_name='date1') #读取指定表
temp = df[["语文","数学","英语","物理","化学","道德与法治","历史","生地"]]
df["总分"] = temp.sum(axis=1)#axis 0为列,1为行
df["平均分"] = temp.mean(axis=1)
Total = df[["语文","数学","英语","物理","化学","道德与法治","历史","生地"]].mean()
Tota2 = df[["语文","数学","英语","物理","化学","道德与法治","历史","生地"]].max()
writer = pd.ExcelWriter('H:\ 2.xlsx')
df.to_excel(writer,sheet_name='Sheet1')
Total.to_excel(writer,sheet_name='Sheet2')
Tota2.to_excel(writer,sheet_name='Sheet3')
# 判断成绩数组中及格人数
df1 = df[df[['语文','数学','英语']] >= 90]
print('及格人数:',df1[['语文','数学','英语']].count())
df2 = df[['语文','数学','英语']]
print('考试人数:',df2[['语文','数学','英语']].count())
writer.save()#文件保存
writer.close()#文件关闭
templ= r"H:\ 2.xlsx"
wb = openpyxl.load_workbook(templ) 
#指定单元格保存
ws = wb['Sheet1']
ws['c189'].value = '平均成绩'
ws['d189'].value = Total['语文']
ws['e189'].value = Total['数学']
ws['f189'].value = Total['英语']
ws['g189'].value = Total['物理']
ws['h189'].value = Total['化学']
ws['i189'].value = Total['道德与法治']
ws['j189'].value = Total['历史']
ws['k189'].value = Total['生地']
ws['c190'].value = '及格人数'
ws['d190'].value = df1['语文'].count() 
ws['e190'].value = df1['数学'].count()
ws['f190'].value = df1['英语'].count()
#及格率
ws['d190'].value = df1['语文'].count() / df2['语文'].count()
wb.save(r"H:\ 2.xlsx") 

上诉代码可根据自己的实际情况进行修改,如及格人数中,我是按>=90分计算的。

版权属于:逍遥子大表哥

本文链接:https://cloud.tencent.com/developer/article/1921462

按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前期准备
  • win10安装pyton环境
  • Python处理excel
  • 利用Python打开Excel
  • 求学生总分和平均分
  • 求每科目的平均分和最高分
  • 判断成绩数组中及格人数
  • 判断参加考试的人数
  • 对数据进行保存
  • 处理完成的效果
  • 完整代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档