编写Python程序,统计各班的等第人数并进行可视化。
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]= #调用赋分函数填入相应等第数据
#相应成绩查询系统代码略
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( )