图 a |
import pandas as pd
import matplotlib.pyplot as plt
plt.rc("font", **{"family": "SimHei"}) #设置中文字体
df1=pd.read_excel ("wrong.xlsx")
df1["得分"]=26-df1.sum(axis=1)*2
for i in df1.index:
if :
df1.at[i,"学号"]="*"+df1.at[i,"学号"]
print( ) #输出满分的同学
wnum={}
for i in df1.columns[1:14]:
wnum[i]=num
print(wnum) #输出结果如图b所示
{'单选 1': 11, '单选 2': 3, '单选 3': 3, '单选 4': 4, '单选 5': 5, '单选 6': 2, '单选 7': 9, '单选 8': 10, '单选 9': 7, '单选 10': 19, '单选 11': 9, '单选 12': 13, '单选 13': 26} |
图b
#根据错误人数进行排序
df2=pd.DataFrame({"题号":wnum.keys( ),"错误人数":wnum.values( )})
df2_sort=df2.sort_values('错误人数', )
print(df2_sort) #输出结果如图c所示
#创建图表,分析错误人数最多的前6个单选题
df3 = df2_sort.
plt.title("错误人数排名前 6 的单选题")
plt.bar
plt.ylim(5,30)
plt.legend( )
plt.show ( )
图 c
图 d |