python利用pandas分析学生期末成绩实例代码
作者:只为你220 发布时间:2023-12-13 19:29:08
安装Pandas
Pandas是构建在Python编程语言之上的一个快速、强大、灵活且易于使用的开源数据分析和操作工具。Pandas是基于Numpy的专业数据分析工具,可以灵活高效的处理各种数据集。
我们使用pip进行安装(如果没有可自行查询如何安装pip)安装panda最简单的方法是将其作为Anaconda的一部分安装,Anaconda主要用于数据分析和科学计算。还提供源代码、PyPI、ActivePython、各种Linux发行版或开发版本进行安装的说明。
当然,最为基础的Python环境还是少不了的,如果你是Linux或使用的Mac就不用安装Python了。
pip install pandas
分析过程
1.从excel文件中读出本班同学的成绩册,并处理好缺失值。
2.根据‘加分'和‘减分'两列统计出平时成绩。
3.将实验报告成绩从ABCD转换为百分制,统计出实验成绩。A为90分,B为75分,C为60分,D为40分。
4.随机生成假设的期末成绩,取值区间为40-100分。将自己的期末成绩改成你觉得可能考到的分数。
5.按照平时成绩20%,实验成绩30%,期末成绩50%的比例计算综合成绩。
6.输出你自己的平时成绩,实验成绩,期末成绩和综合成绩。
7.统计全班综合成绩[90,100],[80,89],[70,79],[60-69],[0,59]各段成绩的人数,并画饼图。
8.将完整的成绩保存到score.xlsx文件中,打开excel检查输出是否正确。
完整实例
准备工作:导入需要用到的模块
import pandas as pd
import numpy as np
import random
from matplotlib import pyplot as plt
(1)从excel文件中读出本班同学的成绩册,并处理好缺失值。
df=pd.read_csv("4班平时成绩.csv",encoding="gbk")
df=df.rename(columns={"ID":"学号"})#将列名ID重命名
df.set_index("姓名",inplace=True)#将姓名作为index
df=df.fillna(method="backfill")#处理缺失值
(2)根据‘加分'和‘减分'两列统计出平时成绩。
df["平时成绩"]=df["平时成绩"]-df["减分"]
df=df.drop("减分",axis=1)#删除列
(3)将实验报告成绩从ABCD转换为百分制,统计出实验成绩。A为90分,B为75分,C为60分,D为40分。
def m(x):#2 将ABCD转化为对应的分数
if x=="A":
return 90
if x=="B":
return 75
if x=="C":
return 60
if x=="D":
return 40
df["第一次实验报告"]=df.第一次实验报告.map(m)
df["第二次实验报告"]=df.第二次实验报告.map(m)
df["第三次实验报告"]=df.第三次实验报告.map(m)
(4)随机生成假设的期末成绩,取值区间为40-100分。将自己的期末成绩改成你觉得可能考到的分数。
def cj(x):
return random.randint(40,100)
df["期末成绩"]=""
df["期末成绩"]=df.期末成绩.map(cj)
df
(5)按照平时成绩20%,实验成绩30%,期末成绩50%的比例计算综合成绩。
df["综合成绩"]=df["期末成绩"]*0.5+df["平时成绩"]*0.2+df["第一次实验报告"]*0.1+\
df["第二次实验报告"]*0.1+df["第三次实验报告"]*0.1
df
(6)输出你自己的平时成绩,实验成绩,期末成绩和综合成绩。
df[df.姓名=='只为你220']
(7)统计全班综合成绩[90,100],[80,89],[70,79],[60-69],[0,59]各段成绩的人数,并画饼图。
y=pd.cut(df['综合成绩'],bins=[0,60,70,80,90,100],\
labels=['0-59','60-69','70-79','80-89','90-100'])#分区间
a=y.value_counts()#统计区间人数
print(a)
plt.rcParams['font.sans-serif']=['SimHei']
a.plot(kind='pie',title='学生成绩区间统计图')
(8)将完整的成绩保存到score.xlsx文件中,打开excel检查输出是否正确。
将结果保存为.xlsx文件
df.to_excel(excel_writer="score.xlsx",index=False,encoding='utf-8')
将刚刚保存的.xlsx文件打开,查看结果是否正确
pd.read_excel("score.xlsx")
总结
来源:https://blog.csdn.net/weixin_48906504/article/details/117931329
猜你喜欢
- Pandas提供了便捷的方式对时间序列进行重采样,根据时间粒度的变大或者变小分为降采样和升采样:降采样:时间粒度变大。例如,原来是按天统计的
- 首先,为什么选择Tornado:1.高性能的网络库,这可以和gevent,twisted,libevent等做对。提供了异步io支持,超时事
- 本文实例讲述了Python中@property的理解和使用。分享给大家供大家参考,具体如下:重看狗书,看到对User表定义的时候有下面两行
- 矩阵增加行np.row_stack() 与 np.column_stack()import numpy as npa = np.array(
- 本文实例讲述了Python统计分析模块statistics用法。分享给大家供大家参考,具体如下:一 计算平均数函数mean()>>
- 本文实例讲述了python实现颜色rgb和hex相互转换的函数。分享给大家供大家参考。具体分析如下:下面的python代码提供了两个函数分别
- 学习使用存储过程(Stored Procedure),是ASP程序员的必须课之一。所有的大型数据库都支持存储过程,比如Oracle
- 引言:本人从小白自学python,为了测试基础学习效果,增加一定的促进,想通过参加全国计算机等级考试二级python来检验基础学习情况。在学
- 发现问题最近在工作中遇到一个问题,通过查找相关的解决方法终于解决,下面话不多说了,来一起看看详细的介绍吧命令行会出现如下错误信息Syntax
- 学习python编程,首先要配置好环境变量。本文主要讲解python的环境变量配置,在不同版本下如何安装Windows打开Python官方下
- php输出全部gb2312编码内的汉字,$area表示分区,$pos表示分区内所在位置。<?php$fp = fopen('t
- 本文实例为大家分享了python3.5绘制随机漫步图的具体代码,供大家参考,具体内容如下代码中我们定义两个模型,一个是RandomWalk.
- 前言今天在升级下载Python第三方库的时候特别慢,最后去升级pip的时候竟然还time out了,哇心态炸了。 最后想了一下为什么会这么慢
- 说明:这个例子,首先是把SPAN里的内容用display:none;干掉,就是不显示; 然后在A:HOVER时,再把SPAN里的内容disp
- 前言中位数是一个可将数值集合划分为相等的上下两部分的一个数值。如果列表数据的个数是奇数,则列表中间那个数据就是列表数据的中位数;如果列表数据
- 通过XML使系统之间的数据交换变得更简单,因为它与编程语言无关,刚引入XML的概念时,是通过一个脚本或应用程序解析XML数据,将其转换为适合
- 数字运算=:用于给变量赋值type(x):查看数据所属类型isinstance(x, A_tuple):判断数据是否为预期类型+:两个数相加
- 本文介绍了四种asp导出excel数据的方法:1.使用OWC ,2.用Excel的Application组件,3.直接在IE中打开,4.导出
- 最近在用Pycharm学习Python的时候,总有两个地方感觉不是很舒服,比如调用方法的时候区分大小写(thread就不会出现Thread,
- 有过Web经验的人喜欢使用:<meta http-equiv="refresh" content="1;