python利用pandas分析学生期末成绩实例代码

安装Pandas

Pandas是构建在Python编程语言之上的一个快速、强大、灵活且易于使用的开源数据分析和操作工具。Pandas是基于Numpy的专业数据分析工具,可以灵活高效的处理各种数据集。

我们使用pip进行安装(如果没有可自行查询如何安装pip)安装panda最简单的方法是将其作为Anaconda的一部分安装,Anaconda主要用于数据分析和科学计算。还提供源代码、PyPI、ActivePython、各种Linux发行版或开发版本进行安装的说明。

当然,最为基础的Python环境还是少不了的,如果你是Linux或使用的Mac就不用安装Python了。

python利用pandas分析学生期末成绩实例代码

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=\'学生成绩区间统计图\')

python利用pandas分析学生期末成绩实例代码

(8)将完整的成绩保存到score.xlsx文件中,打开excel检查输出是否正确。

将结果保存为.xlsx文件

df.to_excel(excel_writer=\"score.xlsx\",index=False,encoding=\'utf-8\')

将刚刚保存的.xlsx文件打开,查看结果是否正确

pd.read_excel(\"score.xlsx\")

总结

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容