当前位置: 高中信息技术 / 综合题
  • 1. (2023·嘉兴模拟) 某地高中的技术选考数据,保存在“jsxk.xls”文件中,如图a所示。

    图 a

    图 b

    请回答下列问题:

    1. (1) 统计各学校技术选考人数占本校总人数的比例,找出占比最高的前 5 所学校并绘制柱形图,如图 b 所示。部分 Python程序如下,请在划线处填写合适的代码。

      import pandas as pd

      import matplotlib.pyplot as plt

      #图表支持中文字体显示,代码略

      df= pd.read_excel("jsxk.xls",dtype={'学校代码':'string'})           #学校代码列为字符串

      df1 = df.groupby("  ", as_index=False).count()        #按学校统计人数

      df1 = df1.rename(columns={'姓名':'学生总数'})#重命名列

      df1['技术比例'] = round(/df1['学生总数']* 100,2)

      df1 = df1.sort_values('技术比例',ascending=False).head(5)

      plt.title('技术选考比例前 5 的学校')

      plt.bar( )

      plt.show()

    2. (2) 在本问题的解决中,为了探究函数 groupby() ,某同学编写了自定义函数zdygroupby() ,其功能为统 计各校技术选考总人数,并以字典的形式返回。函数代码如下,请在划线处填写合适的代码。(注:代码中 lst 为二维列表,列表中每个元素包含3个数据项,格式如[['201901','顾筱扬',NaN],['201901','  俞凯睿', 1.0],['201901',' 陈丹祺', 1.0] … …])

      def zdygroupby(1st):

          dic = {}

          for row in lst:

              if row[2] == 1:

                  if  :

                      dic[row[0]]=1

                  else:

                      dic[row[0]]+= 1

         

微信扫码预览、分享更方便