统计高一学生选课情况。高一学生要从物理、化学、生物、政治、历史、地理、技术这七门科目中选择3门作为选考科目,“1”表示已选择科目,数据存储在文件“xk.xlsx”中。
⑴根据选课情况完成填充组合列(L列)。
⑵统计组合数量,并将选课组合人数最多的5个组合以柱形图的方式呈现(如图所示)。
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel ("xk.xlsx")
plt.rc('font',**{'family':'SimHei'})
zh=[ ]
n=df.姓名.count()
xk=["物理","化学","生物","政治","历史","地理","技术"]
#处理组合名, 将组合名依次存入列表 zh 中 for i in range(n):
a=""
for x in xk:
if df.at[i,x]==1:
if x=="历史":
a=a+"史"
else:
a=a+x[0]
zh.append(a)
df["组合"]=
#将组合名填入 L 列
df1=df.groupby("组合",as_index=False).姓名.count()
df1.rename(columns={"姓名":"人数"},inplace=True) #将列标题”姓名”改成”人数” df1.sort_values("人数",,inplace=True)
df2=df1[0:5]
x=df2["组合"]
y=df2["人数"]
plt. (x,y)
plt.show ()