1. 某校高二年级2022年12月的物理学考模拟考试成绩如图a所示,等级赋分标准如图b所示。

编写Python程序,统计各班的等第人数并进行可视化。

 

(1) 主程序。读取 xls 数据文件,简化班级名称,并按赋分标准填入等第数据(如图c)。请在程序划线处填入合适的代码。

 

import pandas as pd

import matplotlib as plt

df=pd.read_excel("xkmn.xls")

df.insert(5,"等第","")   #在数据表最后位置插入一列

df.drop(["准考证号","自定义考号"],axis=1,inplace=True)    #删除数据表前二列数据

def dengdi(fs):    #根据等第赋分标准获取相应等第

    if fs>=76:d="A"

    elif fs>=56:d="B"

    elif fs>=41:d="C"

    elif fs>=22:d="D"

    else: d="E"

    return d

for i in df.index:

    if df.得分[i]=="未扫描":

            #删除缺考考生数据

    else:

        df.班级[i]=df.班级[i][-2:]

        df.等第[i]=      #调用赋分函数填入相应等第数据

#相应成绩查询系统代码略

(2) 程序加框处的语句实现数据整理,删除缺考的考生,以下选项中可以实现的有(   )(多选)。 A. df=df.drop(i) B. df.drop(i,inplace=True) C. del df[i] D. df.pop(i)
(3) 根据结定班级,分析该班的等第数据并可视化,可视化结果如图d所示。请在程序划线处填入合适的代码。

bj=input("请输入班级号(1~6):")+ "班"

df1=df[df.班级==bj]

print(df1)

dd={"A":"A","B":"B","C":"C","D":"D","E":"E"}

for i in dd:

#统计各等第相应的人数

dd[i]=list(df1.等第).count(i)

dd=list(dd.values())

#获取字典中各等级的值并转换为列表

df2=pd.DataFrame(dd,columns=["人数"], )

plt.title(f"高二{bj}学考等第分布情况图")

plt.xlabel("等级")

plt.ylabel("人数")

plt.bar()

plt.show( )

【考点】
模块; 表格数据的图表呈现;
【答案】

您现在未登录,无法查看试题答案与解析。 登录
综合题 普通