当前位置: 高中信息技术 / 综合题
  • 1. (2023·绍兴模拟) 一球迷收集了近3个赛季的CBA比赛数据,每个赛季的数据分别保存在独立文件中,如图a所示,文件中数据记录格式如图b所示,以球员“布莱克尼”的“二分”数据“7.9-16.3”为例,7.9表示二分球平均命中数量,16.3表示二分球平均投篮次数。

    该球迷想根据历史赛季数据预测各球队下个赛季的首发阵容,编写了如下Python程序,请回答下列问题:

    import pandas as pd

    def readData(file):

        df=pd.read_excel(file)    #读取文件 file 中的数据

        cols={"二分":2,"三分":3,"罚球":1}

        for i in range(len(df)):     #计算每个队员的得分

            for col in cols:

                p=df[col][i].find("-")#在字符串中找到“-”的位置

                n=float(df[col][i][:p])

                         

        return df

    1. (1) 定义readData函数,功能为:读取某赛季的excel文件,返回每个队员的得分(得分=二分球命中数量*2+三分球命中数量*3+罚球命中数量。函数代码如下,划线处应填入的代码为       (单选,填字母)。
      A . df["得分"][i]+=n*cols[col] B . df["得分"][i]=n*cols[co1] C . df["得分"]+=n*cols[col] D . df["得分"]=df.二分*2+df.三分*3+df.罚球
    2. (2) 定义select函数,功能为:筛选各球队得分最高的5名球员作为首发阵容,并把球员名字及得分存入列表members后返回。其中n号球队各球员名字存入members[2*n]中,得分存入members[2*n+1]中,请在划线处填写合适的代码。

      def select(teams) :

          #teams 是字典变量,如:{"浙江":0,"上海":1},字典的值代表球队编号

          seasons=["20-21","21-22","22-23"]

          members=[0]*len(teams)*2

          df=readData(seasons[0]+".x1sx")

          for season in :

              file=season+".xlsx"

              df1=readData(file)

              df=pd.concat([df, df1])#合并两个 DataFrame 对象数据

          for team in teams:

              df1=

              df1=df1.groupby("球员" , as_index=False).mean()#计算各球员平均得分

              df1=df1.sort_values("得分",ascending=False).head(5)#按得分降序排序并选取前5名

             

              members[2*n]=df1["球员"].values

              members[2*n+1]=df1["得分"].values

      return members

    3. (3) 定义showChart函数,功能为:查询某球队的首发阵容,绘制柱形图,图表如图c所示,程序如下,请在划线处填写合适的代码。

      import matplotlib.pyplot as plt

      def showChart(tean, menbers) :

          n=teams[team]

          plt.bar(,)

          plt.title(team+"队首发阵容")

          plt.show()

      ⑷主程序代码如下。

      teams={"浙江":0,"上海":1,"山东":2,"广东":3,"北京":4}

      members=select (teams)

      while True:

          team=input("输入球队:")

          if team=="" : break

          showChart(team, members)

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