中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

2025新教材技術(shù)高考第一輪基礎(chǔ)練習(xí)--信息技術(shù)專題三 數(shù)據(jù)處理與應(yīng)用

資源下載
  1. 二一教育資源

2025新教材技術(shù)高考第一輪基礎(chǔ)練習(xí)--信息技術(shù)專題三 數(shù)據(jù)處理與應(yīng)用

資源簡介

中小學(xué)教育資源及組卷應(yīng)用平臺
2025新教材技術(shù)高考第一輪
專題三 數(shù)據(jù)處理與應(yīng)用
考點過關(guān)練
考點一 常用表格數(shù)據(jù)的處理
1.(2022諸暨海亮高中期中,16)為了響應(yīng)全民健身計劃,某高中對學(xué)生進行了體質(zhì)健康測評,并用Excel軟件進行數(shù)據(jù)處理,如圖a所示。
圖a
請回答下列問題:
(1)區(qū)域M2:P15 的數(shù)據(jù)是通過公式計算得到的,在M2單元格中輸入公式后,再使用自動填充功能完成該區(qū)域的計算,則N3單元格中的公式是“=SUMPRODUCT((    )*($I$3:$I$553=N$1))”。
(提示:M2單元格輸入公式=SUMPRODUCT((A1:A100=“2”)*(I1:I100=“優(yōu)秀”)),表示同時滿足A1:A100是2班和I1:I100是優(yōu)秀這兩個條件的情況數(shù)量,也就是進行條件計數(shù)。)
(2)根據(jù)圖a中的數(shù)據(jù)制作的圖表如圖b所示。創(chuàng)建該圖表的數(shù)據(jù)區(qū)域是    。
圖b
(3)對圖a工作表進行相關(guān)數(shù)據(jù)分析,下列說法正確的是    (多選,填字母)。
A.以“總分等級”為依據(jù)進行升序排序,選擇的區(qū)域是A3:I553
B.選擇“A3:I553”按照“總分等級”升序排序后,圖 b 的圖表不會發(fā)生改變
C.現(xiàn)需要選出總分等級為“不及格”的學(xué)生,可選擇區(qū)域A3:I553,以“總分等級”為“不及格”進行篩選并保留結(jié)果
D.為了顯示男生立定跳遠得分最高的3位學(xué)生數(shù)據(jù),可先對“性別”為“男”進行篩選,再對“立定跳遠”進行篩選,選擇最大的3項
2.(2023杭州“六縣九校”期中,16)小明同學(xué)為備戰(zhàn)明年的計算機類研究生考試,收集了部分高校的計算機專業(yè)復(fù)試分數(shù)線并進行分析。小明收集到的數(shù)據(jù)如圖a所示。
各院校總分展示圖
請幫助小明同學(xué)對表格數(shù)據(jù)進行下列分析:
(1)若想知道這些學(xué)校的總分情況,則在F2單元格先輸入公式       (要求必須使用函數(shù)),然后使用自動填充功能完成單元格F3:F8 的計算。
(2)現(xiàn)要求按照“總分”列進行降序排序,并篩選出總分在290分及以上的院校并顯示,最后繪制各個院校總分的垂直柱形圖(如圖b)。請在程序劃線①②③處填入合適的代碼。
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['KaiTi','SimHei','FangSong'] #圖表中文顯示處理
df=pd.read_excel ("score.xlsx")
df1=df[  ①   ]
print(df1)#輸出篩選數(shù)據(jù)
df=df.  ②   ("總分",ascending=False)#按照“總分”列降序排序
print(df)#輸出排序好的數(shù)據(jù)
#------創(chuàng)建圖表代碼------
plt.title("各院校總分展示圖")
plt.xlabel("院校名稱")
plt.  ③   (df.院校名稱,df.總分)  #各個院校總分的垂直柱形圖
plt.show()
3.(2023杭州S9聯(lián)盟聯(lián)考,14)小明收集了當?shù)?023年3月份的天氣情況,數(shù)據(jù)存儲在文件“temp.xlsx”中,如圖a所示。分析溫差最大的日期,并生成反映各類天氣情況的天數(shù)對比圖如圖b所示。
(1)在對表格進行數(shù)據(jù)整理時發(fā)現(xiàn),“日期”可能存在的數(shù)據(jù)問題是     (單選:A.數(shù)據(jù)缺失;B.數(shù)據(jù)異常;C.邏輯錯誤;D.數(shù)據(jù)格式不一致)。
(2)程序代碼如下所示,請在劃線處填入合適的代碼。
import matplotlib.pyplot as plt
import pandas as pd
plt.rcParams["font.sans-serif"]=["SimHei"] #設(shè)置中文字體
df=pd.read_excel("temp.xlsx")
df["溫差"]=  ①  #新增"溫差"列
s=df.sort_values("溫差", ascending=False, ignore_index=True)
df_max=  ②   #獲取溫差最大的日期,如并列只輸出第一個日期
print(df_max)
df_t=s.groupby("天氣", as_index=False).count()
df_t=df_t.rename(columns={"日期": "天數(shù)"}) #修改列名"日期"為"天數(shù)"
x=df_t["天氣"]
y=df_t["天數(shù)"]
  ③  (x, y, label="天氣情況")
plt.legend()
plt.show()
(3)觀察圖b,3月份天數(shù)最多的天氣類型是    。
4.(2023杭州地區(qū)重點中學(xué)期中,15)某中學(xué)高一年級完成一次7選3意向調(diào)查,數(shù)據(jù)存儲在“xk73.xlsx”中,如圖a所示,其中1代表選擇科目,0代表棄選科目。
(1)使用 pandas 編程計算本次選課各門課人數(shù)占總?cè)藬?shù)的比例, 請在劃線處填入合適的代碼。
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']#圖表顯示中文
df=pd.read_excel ("  ①  ")
a=[" "]*len(df) #存儲每個學(xué)生的選課組合
dic={"物":0,"化":0,"生":0,"政":0,"歷":0,"地":0,"技":0}
for i in df.index:
  for j in df.columns[3:]:
   if df.at[i,j]==1:
       ②  
     a[i]+=j
for i in dic.keys():
  dic[i]=round(dic[i]/len(df)*100,2)
(2)按照各科選考人數(shù)占比創(chuàng)建如圖b所示的圖表。
各科選考人數(shù)占比
df1=pd.DataFrame({"學(xué)科":dic.keys(),"人數(shù)占比":dic.values()})
df1=  ①  
plt.title("各科選考人數(shù)占比")
plt.bar(  ②   , label="人數(shù)占比")
plt.legend()
plt.show()
觀察圖b,橫線處應(yīng)填入的代碼為:①   ;②   (選填字母)。
A.df1.sort_values("人數(shù)占比",ascending=True)
B.df1.sort_values("人數(shù)占比",ascending=False)
C.df1.學(xué)科,df1.人數(shù)占比
D.df1.人數(shù)占比,df1.學(xué)科
(3)小李同學(xué)想查詢某種七選三組合有多少人。以下程序代碼可以為小李同學(xué)提供查詢功能,程序運行示例如圖c所示,請在劃線處填入合適的代碼。
請輸入需要查詢的選課組合:物化技
選擇物化技組合的同學(xué)共有:192人
圖c
cx=input("請輸入需要查詢的選課組合:")
cnt=0
for i in range(len(a)):
  if     :
   cnt=cnt+1
print(f"選擇{cx}組合的同學(xué)共有: {cnt}人")
5.(2023浙江1月選考,14,9分)小紅收集了部分城市2021年全年每天PM2.5、PM10、CO濃度數(shù)據(jù),每天的數(shù)據(jù)分別保存在以8位日期字符串命名的CSV文件中,部分文件如圖a所示,每個文件記錄了一天24小時的監(jiān)測數(shù)據(jù),示例如圖b所示。
  
為統(tǒng)計分析城市A全年各月份PM2.5的月平均濃度(當月的日平均濃度的平均值),編寫Python程序。請回答下列問題:
(1)定義pmday函數(shù),功能為:讀取某天的CSV文件,返回城市A當天PM2.5的日平均濃度。函數(shù)代碼如下,劃線處應(yīng)填入的代碼為    (單選,填字母)。
A.df['類型']=='PM2.5'
B.df['類型'=='PM2.5']
C.df[df['類型']]=='PM2.5'
D.df[df['類型']=='PM2.5']
import pandas as pd
def pmday(dayfile):
df=pd.read_csv(dayfile)  #讀取文件 dayfile 中的數(shù)據(jù)
df=   
return df['城市A'].mean()  #返回城市A當天PM2.5的日平均濃度
(2)統(tǒng)計城市A各月份PM2.5的月平均濃度并繪制線形圖,部分Python程序如下,請在劃線處填入合適的代碼。
import matplotlib.pyplot as plt
def tstr(t):
if t<10:
  retrun '0'+str(t)
else:
  retrun str(t)
pm=[0]*12
mdays=[31,28,31,30,31,30,31,31,30,31,30,31]  #2021年每月天數(shù)
for m in range(12):
  sm=0
mstr=tstr(m+1)
for d in range( ① ):
dstr=tstr(d+1)
dayfile='2021'+ mstr+ dstr+ '.csv'
sd=pmday(dayfile)
 ② 
pm[m]=sm/mdays[m]
x=[1,2,3,4,5,6,7,8,9,10,11,12]
y= ③ 
plt.plot(x,y)  #繪制線形圖
#設(shè)置繪圖參數(shù),顯示如圖c所示線形圖,代碼略
(3)城市A 2021年 PM2.5年平均濃度為34.6微克/立方米。由圖c可知,城市A 2021年 PM2.5月平均濃度超過年平均濃度的月份共    個。
考點二 大數(shù)據(jù)處理
1.(2023寧波三鋒期中,2)下列關(guān)于大數(shù)據(jù)與大數(shù)據(jù)處理的說法,不正確的是(  )
A.處理大數(shù)據(jù)時,一般采用分治思想
B.大數(shù)據(jù)的處理對象是全體數(shù)據(jù),而不是抽樣數(shù)據(jù)
C.大數(shù)據(jù)的特點是數(shù)據(jù)量大、速度快、數(shù)據(jù)類型多、價值密度低
D.Hadoop是一個可運行于大規(guī)模計算機集群上的分布式系統(tǒng)基礎(chǔ)架構(gòu),適用于處理實時數(shù)據(jù)
2.(2023金華十校聯(lián)考,3)下列有關(guān)大數(shù)據(jù)處理、數(shù)據(jù)可視化的說法不正確的是(  )
A.靜態(tài)數(shù)據(jù)是指處理時已收集完成、計算時不會發(fā)生改變的數(shù)據(jù)
B.流數(shù)據(jù)主要是指不間斷地、持續(xù)地到達的實時數(shù)據(jù)
C.圖計算是指有關(guān)大量圖片的計算
D.“各省生產(chǎn)總值占比情況”可以采用餅圖或環(huán)形圖呈現(xiàn)
3.有Python程序段如下所示:
import pandas as pd
import numpy as np
a=np.array([1,2,3,4]).reshape(2,2)
df=pd.DataFrame(a)
print(df.at[1,1])
該程序段運行后輸出的結(jié)果為(  )
A.4   B.3   C.2   D.1
4.小張收集了近階段要學(xué)習(xí)的英文單詞,存儲為“data.txt”文件,格式如圖所示。
處理“data.txt”文件中的英文單詞的Python程序段如下所示:
file='data.txt'
word_c=[]
n=0
for word in open(file):
  if word[0:1]=="c":
    word_c.append(word)
       
print('字母c開頭的單詞個數(shù)為:',n)
(1)劃線處的代碼為    。
(2)該程序段運行后,列表word_c中的數(shù)據(jù)為                 。
5.請在空格處填寫正確的代碼,使程序完善。
實現(xiàn)功能:繪制y=x2-2x+1的圖象。
#加載numpy模塊并取名為np
import numpy as np
#加載matplotlib.pyplot模塊并取名為plt
import matplotlib.pyplot as plt
# x在-7到9之間,每隔0.1取一個值
x=np.arange(-7,9,0.1)
 ① =x**2-2*x+1
plt.plot(x, ② )
plt.title('y=x*x-2*x+1')
plt.xlabel('x')
plt.ylabel('y')
plt. ③ 
6.在網(wǎng)上搜索朱自清的文章《綠》,如圖所示。
(1)搜索信息并保存為txt文件,該過程稱為     。
(2)“綠.txt”文件的文本類型是    。(填寫字母:A.結(jié)構(gòu)化數(shù)據(jù)/B.半結(jié)構(gòu)化數(shù)據(jù)/C.非結(jié)構(gòu)化數(shù)據(jù))
(3)制作標簽云的代碼如下:
import collections
import jieba
import wordcloud as wc
import numpy as np
from PIL import Image
wcg=wc.WordCloud(background_color="white",font_path='assets/msyh.ttf')
text=open('data/綠.txt',encoding='utf-8')
read()
seg_list= ① 
f=collections.Counter(seg_list)
wcg.fit_words(f)
wcg.to_file('output/b.png')
劃線處①語句是調(diào)用jieba對象的cut函數(shù)對變量為text的文件進行分詞,則該處語句為       。
(4)得到的標簽云如圖所示。
該圖片的文件名是    ,表現(xiàn)該文本特征的是            。(至少寫出3個)
專題綜合練
題組一
1.(2023十校聯(lián)盟聯(lián)考,5)近年來,各地相繼出現(xiàn)了一些無人售貨超市,其購物流程為:通過微信號/支付寶注冊→掃碼或掃臉開門→選購商品→結(jié)算區(qū)顯示屏清單確認(智能檢測)→開門即走(智能扣款)。整個過程快捷方便,達到無感支付。超市內(nèi)24小時利用攝像頭監(jiān)控,實行人臉識別防盜監(jiān)控,發(fā)現(xiàn)有小偷將自動抓拍報警并列入黑名單,通過RFID技術(shù)+核心軟件算法有效識別和定位貨損源頭,并進行有效處理和防范。此外,超市也會依靠大數(shù)據(jù)、云計算技術(shù),對各種商品的銷售狀況進行匯總分析,并智能判斷客戶的購買習(xí)慣進行產(chǎn)品推薦,還能預(yù)測銷售走勢,給商家提供合理的建議。
根據(jù)閱讀材料,下列說法正確的是(  )
A.匯總分析已完成的商品銷售狀況數(shù)據(jù)屬于流數(shù)據(jù)
B.無人售貨超市依靠大數(shù)據(jù)處理只需要分析最近幾個月的抽樣數(shù)據(jù)
C.根據(jù)客戶賬號的購買習(xí)慣進行產(chǎn)品推薦,不需要知道用戶購買商品的原因
D.無人售貨超市中的每一個數(shù)據(jù)都來自真實數(shù)據(jù),體現(xiàn)了大數(shù)據(jù)價值密度高的特點
2.(2023舟山高二期末,12)小明用下列Python程序?qū)Da處理成圖b所示效果,發(fā)現(xiàn)處理后的圖像不理想,他要想將圖像處理成圖c所示效果,則可做的修改是(  )
  
from PIL import Image#第0行
import numpy as np#第1行
import matplotlib.pyplot as plt#第2行
img=np.array(Image.open ('dj.jpg').convert('L'))#第3行
row,cols=img.shape#第4行
for i in range(row):#第5行
  for j in range(cols):#第6行
    if img[i,j]>188:#第7行
      img[i,j]=1 #1表示白色#第8行
    else:#第9行
      img[i,j]=0 #0 表示黑色
#第10行
      plt.figure('dj')#第11行
    plt.imshow(img,cmap='gray')
#第12行
  plt.axis('off')#第13行
plt.show ()
A.將第7行中的數(shù)字188改成138
B.將第7行中的數(shù)字188改成250
C.將第7行中的>改成<
D.將第8行的代碼與第10行的代碼互換
3.(2022杭州重點中學(xué)期中,13)小蕭從國家統(tǒng)計局網(wǎng)站上收集了近幾年國民總收入相關(guān)數(shù)據(jù),并使用Excel軟件進行相關(guān)數(shù)據(jù)處理與分析。部分界面如圖a所示,請回答下列問題:
(1)下列關(guān)于數(shù)據(jù)整理的描述,正確的是  (單選)。
A.某些缺失的數(shù)據(jù)可以自己隨意估計一個值進行補充
B.Excel表格中的異常數(shù)據(jù)可以直接刪除或忽略
C.Excel表格中的重復(fù)數(shù)據(jù)可以進行合并或刪除
D.Excel中格式不一致的數(shù)據(jù),一般只保留一種格式的數(shù)據(jù),刪除其他格式的數(shù)據(jù)
(2)圖b的圖表數(shù)據(jù)類型為    (選填:柱形圖/條形圖/折線圖)。
圖b
(3)根據(jù)表格數(shù)據(jù)呈現(xiàn),從2017年開始可以計算國民總收入增長比例,方法是在C8單元格輸入公式      (計算公式:(當年國民總收入-去年國民總收入)/去年國民總收入),設(shè)置百分比格式后自動填充至F8單元格。
(4)除了Excel,可以進行數(shù)據(jù)分析的軟件還有    (多選,填數(shù)字)。
①Word ②SPSS ③SAS ④MATLAB
⑤記事本 ⑥Python ⑦錄音機
4.(2022杭州八縣市區(qū)期末,16)某次測試的Excel文件成績表如圖1所示。
圖1
(1)已知有200名同學(xué)參加了本次測試。小明想把全體同學(xué)的信息平均分放在D202單元格,那么在 D202單元格輸入的公式為         。
(2)現(xiàn)在要求用Python增加“總分”列數(shù)據(jù),然后求每個班總分的平均分(如圖2),最后繪制每班總分平均分的垂直柱形圖(如圖3)。請在程序劃線①②處選擇合適的代碼(填字母)。
圖2
圖3
import pandas as pd
import matplotlib.pyplot as plt
#圖表中文顯示處理,代碼略
df=pd.read_excel("test.xlsx")
score=[]
for i in df.values:
js=  ①   #①處請選擇(填字母): A.df["信息"]+df["通用"]/B.i[3]+i[4]
score.append(js)
df["總分"]=score
df1=df.groupby("班級".as_index=False)["總分"].mean()
plt.title("期中技術(shù)平均分")
plt.  ②  (df1["班級"],df1["總分"],width=0.5)#②處請選擇(填字母):
A.plot/B.bar/C.scatter
5.(2022麗水期末,13)小明收集了本周信息技術(shù)學(xué)科學(xué)習(xí)評價的數(shù)據(jù),如圖所示。
(1)觀察上表小明做了如下操作,其中屬于數(shù)據(jù)整理的是    (多選,填字母)。
A.刪除重復(fù)行第五行
B.驗證并修改D2單元格數(shù)據(jù)
C.通過公式計算全班平均分
D.重新設(shè)置C3單元格格式
(2)為了分析每個組的平均分,設(shè)計了如下Python程序。
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel("成績表.xlsx")
                
print(df1)
劃線處的代碼應(yīng)為    (單選,填字母)。
A.df1=df.groupby("平均分").mean()
B.df1=df.mean()
C.df1=df.groupby("小組").mean()
D.df1=df["小組"].mean()
(3)利用Python程序繪制各小題得分率圖表,如圖所示。
請在劃線處填寫合適的代碼。
num=int(input("請輸入小組:"))
plt.figure(figsize=(10,5))
list=[]
for i in range(12):
  s="題"+str(i+1)
  list.append(df1.at[num,s]*50)
plt.bar(range(1,13),list)
plt.title(str(num)+"    ")
plt.xlabel("question number")
plt.ylabel("correct rate")
plt.show()
6.(2024屆A9協(xié)作體返校考,14)張三同學(xué)收集了一個地區(qū)8月各類共享單車的騎行數(shù)據(jù)記錄,每天的用戶數(shù)據(jù)存儲于“shared bikes. xlsx”文件中,不考慮跨天數(shù)據(jù)。數(shù)據(jù)格式如圖a所示,請回答下列問題:
(1) cal函數(shù)功能為:讀取騎行時間的小時和分鐘部分,轉(zhuǎn)換為分鐘格式并返回,如“2022/8/20 6:57”獲取“6:57”轉(zhuǎn)換為417 (6*60+57=417), 代碼如下。請在劃線處填入合適的代碼。
def cal(s):
  n=len(s)
  for i in range(n):
   if s[i]==" ": #如果為空格字符
    p=i
   if s[i]==":":
    q=i
  t=       + int(s[q+1:])
  return t
(2)統(tǒng)計本月各類型單車的每天平均騎行時長,并繪制柱形圖,代碼如下,繪制的圖表如圖b所示,請在劃線處填入合適的代碼。
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel ("shared bikes.xlsx")
bike=["哈羅單車","摩拜單車","美團單車","青桔單車"]
sm=[0]*4
avg=[0]*4
days=31
for i in   ①  :
  t=cal(df.at[i, "結(jié)束時間"]) - cal (df. at[i, "開始時間"])
  for j in range(4):
   if df.at[i,"App 類型”]==bike[j]:
      ②  
    break
for i in range(4):
  avg[i]=sm[i]/ days
plt.figure(figsize=(12, 4))
x=bike
y=  ③  
plt.bar(x, y)
plt.show()
(3)統(tǒng)計本月各類型單車的騎行次數(shù),加框處代碼有錯,可以改正為    (選填字母:A.max()/B.min()/C.mean()/D.count())。
n=df. groupby("App類型",as_ index=True).用戶編號.sum ()
7.(2024屆紹興診斷性測試,14)學(xué)校暑期開展“青春迎亞運”活動,邀請高二學(xué)生每日參加運動鍛煉并進行線上打卡。每周收集一次相關(guān)數(shù)據(jù),分別保存在相應(yīng)的xlsx文件中,部分文件如圖a所示。每個文件記錄了一周7天的打卡數(shù)據(jù),示例如圖b所示,其中運動時長單位為分鐘。
為統(tǒng)計分析學(xué)生鍛煉情況,給出周報數(shù)據(jù),編寫Python程序,請回答以下問題:
(1)定義px函數(shù),功能為:讀取某一周的打卡數(shù)據(jù),將其按班級進行排序操作并返回結(jié)果。
函數(shù)代碼如下,將劃線處代碼補充完整。
import pandas as pd
def px(file_week):
  df=pd.read_excel(file_week)
  df=df.sort_values(   ,ignore_index=True)
  #按班級升序排序,參數(shù)ignore_index=True表示更新索引
  return df
(2)統(tǒng)計某一周各運動項目的參與人次,并繪制柱形圖,如圖c所示,部分Python代碼如下:
import matplotlib.pyplot as plt
s=input("請輸入文件名: ")
df=px(s)
df1=df.groupby("運動項目".as_index=False).  ①  #統(tǒng)計各運動項目參與人次
df1.rename(columns={"學(xué)號":"參與人次"},inplace=True) #更改列標題
plt.bar(  ②  )
plt.xlabel("運動項目")
plt.ylabel("參與人次")
plt.show()
劃線處應(yīng)填入的代碼為  (單選,填字母)。
A.①count() ②df1["參與人次"], df1["運動項目"]
B.①sum() ②df1["參與人次"], df1["運動項目"]
C.①sum() ②df1.運動項目, df1.參與人次
D.①count() ②df1.運動項目, df1.參與人次
(3)統(tǒng)計某一周每班各學(xué)生的總運動時長后,比較得出該周每班最高的兩位時長,部分Python程序代碼如下,請在劃線處填入合適的代碼。
qp=[[0 for i in range(m)]for j in range(n)]
'''
定義數(shù)組qp記錄每班各學(xué)生一周運動總時長,n為班級數(shù),m為每班人數(shù)。其中qp[0][0]~qp[0][m-1]存儲1班1號~m號同學(xué)的每周運動總時長,依次類推,qp[n-1][0]~qp[n-1][m-1]存儲n班1號~m號同學(xué)的每周運動總時長。
'''
print("本周每班最高的兩位時長分別為: ")
  i=0
  while i    num=df["學(xué)號"][i]
cla=df["班級"][i]
  ①  
if i!=0 and df["班級"][i]!=df["班級"][i-1] or  ②  :
   cla=df["班級"][i-1]
k1=0;k2=0
for j in range(1,len(qp[cla-1])):
  if qp[cla-1][j]>qp[cla-1][k1]:
      ③  
    k1=j
  elif qp[cla-1][j]>qp[cla-1][k2]:
    k2=j
print(cla,"班",qp[cla-1][k1].qp[cla-1][k2])
i=i+1
(4)統(tǒng)計某一周各運動項目的參與人次后繪制柱形圖如圖c所示,由圖可知,該周參與人氣最高的運動項目為    。
8.(2024屆寧波模擬,13)已知某年級有6個班級,所有學(xué)生名單存儲在文件“name.csv”中(如圖1),學(xué)校舉行某趣味活動項目中,需要每個班抽3名代表參加比賽,請編寫一個隨機抽取程序,執(zhí)行效果如圖2。請回答以下問題:
   
(1)加框處代碼的作用是 。
(2)實現(xiàn)上述功能的部分Python程序如下,請在劃線處填寫合適的代碼。
import csv
import random #數(shù)據(jù)讀入
f=open("name.csv","r")
flines=csv.reader(f)
name_list=[]
m=6 #班級總數(shù)
total=18 #參賽總?cè)藬?shù)
for line in flines:
if line[0]=="班級":
continue #跳過當前循環(huán)的剩余語句,繼續(xù)進行下一次循環(huán)
name_list.append(line)
  ①  
flag=[False]*n
grade=[3]*m
i=0
while i  p=random.randint( ② , ③ )
  bj=int(name_list[p][0])
  if flag[p]==False:
    if grade[bj-1]>0:
     flag[p]=True
  ④  
i+=1
print("抽取名單為: ")
print("班級","姓名")
for i in range(n):
if flag[i]:
  print(name_list[i][0],name_list[i][1])
f.close()
9.(2023杭州地區(qū)重點中學(xué)聯(lián)考,14)小明利用“在線社團報名系統(tǒng)”收集了全校學(xué)生的社團報名信息,并將報名數(shù)據(jù)導(dǎo)出到“社團報名.xlsx”中,如圖1所示。然后編寫Python程序?qū)竺麛?shù)據(jù)進行處理,生成分別以班級名和社團名為文件名的 Excel 文件,以便分發(fā)給相應(yīng)的社團指導(dǎo)老師和班主任。
(1)在對表格進行數(shù)據(jù)整理時發(fā)現(xiàn),關(guān)于“Jacky.Y” 同學(xué)的記錄可能存在的數(shù)據(jù)問題是    (選填:A.數(shù)據(jù)缺失 B.數(shù)據(jù)異常 C.邏輯錯誤 D.數(shù)據(jù)格式不一致)。
(2)其中生成每個社團名單文件的過程是:先對報名數(shù)據(jù)按社團名稱進行分類,并對選報同一社團的學(xué)生按班級進行升序排序,然后生成各個社團名單文件,如圖 2所示。對應(yīng)的程序代碼如下,請在劃線處填寫合適的代碼。
 import pandas as pd
 def read_file(filename):
   #讀入報名數(shù)據(jù)的原始文件,并將表中的數(shù)據(jù)轉(zhuǎn)換成列表,代碼略
 def save_file(a): #保存名單到相應(yīng)社團的Excel電子表格文件
   df=pd.DataFrame(a,columns=["班級","姓名","選報社團"])
   df.to_excel(  ①  )+".xlsx",index=False)
 a=read_file("社團報名.xlsx")
 n=len(a)
 #按社團名(參照拼音的字母順序)進行升序排序,代碼略
 #統(tǒng)計各社團人數(shù),存在列表 rs 中,rs=[["滑板社",36],…],代碼略
 s=0
 for i in range(len(rs)):
     ②  
   left,right=s, s+num-1
   while left < right:
    imin=imax=left
    for k in range(left+1,right+1):
      if a[k][0] < a[imin][0]:
        imin=k
      elif a[k][0] > a[imax][0]:
        imax=k
    if imin !=left:
      a[imin],a[left]=a[left],a[imin]
    if imax==left:
        ③  
    if imax !=right:
      a[imax],a[right]=a[right],a[imax]
    left=left+1; right=right-1
   ④  
 s+=num
題組二
1.(2022諸暨期末,4)使用pandas編程處理數(shù)據(jù)DF1,下列選項能實現(xiàn)行列轉(zhuǎn)置操作的是(  )
A.DF1.T    B.DF1.columns
C.DF1.values    D.DF1.index
2.(2022寧波奉化期末,9) 有如下Python程序段:
import pandas as pd
s=pd.Series(range(5,11,3))
s[1]=15
print(s)
該程序執(zhí)行后,輸出的結(jié)果是(  )
1  15 2  8 dtype: int64 0  5 1  15 dtype: int64 1  15 2  8 3  11 dtype: int64 0   5 1  15 2  11 dtype: int64
  A.    B.    C.    D.
3.(2022寧波咸祥中學(xué)期中,16)小明收集了某超市飲料銷售情況相關(guān)數(shù)據(jù),并使用Excel軟件進行處理,如圖a所示。
請回答下列問題:
(1) 區(qū)域 I3:I15 的數(shù)據(jù)是通過公式計算得到的。在I3單元格輸入公式后, 用自動填充功能完成 I4:I15 的計算,則I3單元格中的公式是      。 (占銷售總額百分比=銷售額(元)/銷售總額(元))
(2)若因誤操作將 I16 單元格刪除,則 I3 單元格會顯示   (選填字母:A.#VALUE B.#DIV/0! C.###### D.#REF! )。
(3)要將類別為“可樂”的飲料以“毛利潤(元)”為主要關(guān)鍵字降序排序, 則選擇排序的區(qū)域為    。
(4)小王根據(jù)圖 a 中的數(shù)據(jù),制作了一張反映橙汁類飲料銷售額和毛利潤對比的圖表,如圖b 所示,則建立該圖表的數(shù)據(jù)區(qū)域是    。將E8單元格數(shù)值修改成6.00,是否會影響該圖表    (選填:是/否)
圖b
4.(2022臺州啟超中學(xué)期中,16)APP活躍人數(shù)數(shù)據(jù)存儲在“app.xlsx”文件中,如圖所示,現(xiàn)要編程統(tǒng)計結(jié)果,請回答下列問題:
若要把“app.xlsx”第1張工作表中的信息導(dǎo)入到book1對象中,并進行統(tǒng)計,實現(xiàn)這個功能的Python代碼如下,在程序劃線處填入合適的代碼。
import pandas as pd
book1=   (1)      #讀取app.xlsx文件數(shù)據(jù),并存儲在book1對象中
book1_sum=   (2)   
#計算10月人數(shù)之和
book1_aver=   (3)   
#計算11月人數(shù)平均值
book1_g=   (4)   
#按應(yīng)用領(lǐng)域分組統(tǒng)計
book1_sort=   (5)   
#按11月人數(shù)值,降序排序
print("10月人數(shù)之和:",book1_sum)
print("11月人數(shù)平均值:",book1_aver)
5.(2022寧波奉化期末,14)小孫收集了2016年到2020年的各地區(qū)糧食生產(chǎn)總量并存儲在“l(fā)scl.xlsx”文件中,如圖a所示,現(xiàn)使用Python對其進行數(shù)據(jù)處理,并實現(xiàn)數(shù)據(jù)可視化,繪制的圖表如圖b所示。
實現(xiàn)如上功能的代碼如下,請回答以下問題。
import pandas as pd
import matplotlib.pyplot as plt
plt.rc('font', **{'family': 'SimHei'})
#設(shè)置中文字體
df=pd.read_excel("lscl.xlsx")
df.   ①    ("2020年",ascending=False,inplace=True) 
df1=df.head(10)
x=    ②    
y=df1["2020年"]
plt.figure(figsize=(8,6))
plt.   ③   ("2020年糧食產(chǎn)量TOP10")
plt.bar(x,y,label="2020年")
plt.xlabel("地區(qū)")
plt.legend()
  ④  
(1)請在劃線處填入合適的代碼語句,以實現(xiàn)以上功能。
(2)代碼語句“plt.bar(x,y,label="2020年")”的功能為繪制如圖b所示的圖像,能夠?qū)崿F(xiàn)相同功能的語句是    (多選題,少選得1分,多選不得分)。
A.df.head(10).plot("地區(qū)","2020年")
B.df[:10:].plot("地區(qū)","2020年",kind="bar")
C.plt.plot(x,y,label="2020年",kind="bar")
D.plt.bar("地區(qū)","2020年",label="2020年")
E.df1.plot("地區(qū)","2020年",kind="bar")
6.(2022杭州場口中學(xué)、桐廬富春中學(xué)檢測,16)在月考之后,學(xué)校教務(wù)員拿到了高一年級月考的基礎(chǔ)成績并用Excel軟件進行數(shù)據(jù)處理,如圖1所示。請回答下列問題:
圖1
(1)區(qū)域M2:M645的數(shù)據(jù)是通過在M2單元格輸入公式并自動填充得到的,則M645單元格中的公式是      。
(2)為了分析各班級的數(shù)學(xué)平均分,設(shè)計了如下Python程序,利用其繪制各班數(shù)學(xué)平均分圖表,如圖2所示:
結(jié)合上圖的效果,請在程序劃線處填寫合適的代碼。
import matplotlib.pyplot as plt
import pandas as pd
df=pd.read_excel('高一月考成績.xlsx')
df1=df.groupby("班級").   ①  
plt.bar(df1.index,  ②  )
plt.title("高一各班數(shù)學(xué)平均分")
plt.ylim(40,100)
plt.xlabel(  ③  )
plt.ylabel("分數(shù)")
plt.show()
7.(2023 三月百校聯(lián)考,14)李明收集了梅西2004年至2022年俱樂部比賽數(shù)據(jù),保存在“梅西俱樂部詳細比賽數(shù)據(jù).xlsx”文件中,部分數(shù)據(jù)如圖a所示,現(xiàn)在利用pandas模塊處理數(shù)據(jù)。
(1)梅西2004年10月—2021年7月效力于巴塞羅那俱樂部,2021年8月轉(zhuǎn)會至巴黎圣日耳曼俱樂部,現(xiàn)在李明想知道梅西每個賽季的勝率,實現(xiàn)上述功能的Python程序如下,請在劃線處填入合適的代碼。
 import pandas as pd
 import matplotlib.pyplot as plt
 df=pd.read_excel("梅西俱樂部詳細比賽數(shù)據(jù).xlsx")
 df['年']=pd.to_datetime(df["時間"]).dt.strftime('%Y').astype(int)
 df['月']=pd.to_datetime(df["時間"]).dt.strftime('%m').astype(int)
 df['勝負情況']=" "
 for i in range(len(df)):
   f=True;z=0;k=0
   for c in df["比分"][i]:
    if   ①  :
      if f:
        z=z*10+int(c)
      else:
        k=k*10+int(c)
    else:
      f=not f
   jlb="巴塞羅那"
   if df["年"][i]*100+df["月"][i]>=202108:
       ②  
   if (df["主隊"][i]==jlb and z>k) or (df["客隊"][i]==jlb and z    df['勝負情況'][i]="勝"
   elif z==k:
    df['勝負情況'][i]="平"
   else:
    df['勝負情況'][i]="負"
 g=df.groupby(df["年"],as_index=True).count()
   ③  
 g1=df1.groupby(df1["年"],as_index=True).count()
 g["勝率"]=g1["勝負情況"]/g["勝負情況"]*100
(2)圖b為2004—2022年梅西俱樂部比賽勝率統(tǒng)計圖。
2004-2022年梅西俱樂部比賽勝率統(tǒng)計
 plt.plot(    , marker='^')
 plt.title("2004-2022年梅西俱樂部比賽勝率統(tǒng)計")
 plt.show()
方框處代碼為    (多選:填字母)。
A.g["年"],g["勝率"]     B.g["年"],g.勝率
C.g.index,g["勝率"]     D.g.index,g.勝率
8.(2022湖州三賢聯(lián)盟期中,14)小張同學(xué)為了更好地了解冬奧會,從網(wǎng)上收集了歷屆冬奧會各個項目比賽信息,收集到的部分數(shù)據(jù)如圖1所示。
圖1
圖2
為分析數(shù)據(jù),小張編寫了如下程序:
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator
plt.rcParams['font.sans-serif']=['SimHei'] #正常顯示中文標簽
df=pd.read_csv("dongao.csv")
#刪除所有未獲得獎牌的記錄,并將獎牌列中的"G"修改為"金牌","S"修改為"銀牌","B"修改為"銅牌"
jp={'G':'金牌','S':'銀牌','B':'銅牌'}
for i in df.index:
  if  ①  :
    df=df.drop(i)
  else:
    df.at[i,'獎牌']=jp[df.at[i,'獎牌']]
#對輸入國家每屆的獎牌數(shù)進行統(tǒng)計,并制作相應(yīng)圖表,如圖2所示
nt=input("請輸入國家名稱:")
df1=df[df['國家']==nt]
      
df3=pd.DataFrame(df2) #將分組后數(shù)據(jù)生成新的二維結(jié)構(gòu),索引為“屆次”,列標題為“獎牌”
x=df3.index
y=  ②  
plt.title(nt+"歷屆冬奧會獎牌趨勢圖")
plt.  ③  (x,y)
plt.show()
(1)在劃線處填上合適的代碼。
(2)為了能顯示某國歷屆冬奧會獎牌變化,需在加框處添加的語句為    (多選)。
A.df2=df1.groupby('獎牌')
df2=df1.屆次.count()
B.df2=df1.groupby('屆次')
df2=df2['獎牌'].count()
C.df2=df1.groupby('獎牌')['屆次'].count() 
D.df2=df1.groupby('屆次').獎牌.count()
9.(2023十校聯(lián)盟聯(lián)考,14)小明從網(wǎng)上下載了豆瓣圖書1900—2017年間出版的圖書數(shù)據(jù),存儲在Excel文件中,如圖a所示,數(shù)據(jù)表已按出版年份升序排好,包含書名、作者、出版社、出版年份、價格、評分以及評論數(shù)量。他要編寫一個Python程序快速對圖書數(shù)據(jù)進行分析。
(1)為了求評論數(shù)量累計最高的作者及其出版的圖書平均評分,小明需要對圖a所示的表中數(shù)據(jù)進行整理,則下列說法正確的是    (多選,填字母)。
A.第3行和第4行數(shù)據(jù)重復(fù),刪除其中一行即可
B.通過檢測發(fā)現(xiàn)F56168單元格的數(shù)據(jù)存在錯誤,應(yīng)進行修正
C.刪除“出版社”和“出版年份”兩列數(shù)據(jù),不影響分析結(jié)果
D.“評分”及“評論數(shù)量”為0的數(shù)據(jù)沒有任何價值,可以直接刪除
(2)小明利用整理好的數(shù)據(jù),編寫并運行程序,結(jié)果如圖b所示。
作者 評論數(shù)量
0 [日]村上春樹 679101.0
1 [日]東野主吾 664106.0
2 韓寒 623116.0
3 郭敬明 620571.0
4 [英]J.K.羅琳 462476.0
評論數(shù)量累計最多的作者是:[日]村上春樹 共出版了34部作品,平均評分為8.01
圖b
實現(xiàn)上述結(jié)果的Python程序如下:
import pandas as pd
df=pd.read_excel("books.xlsx")
df1=df.groupby("作者", as_index=False)
df2=df1.評論數(shù)量.sum()
dfsort=df2.sort_values("評論數(shù)量" ,ascending=False,ignore_index=True)
print(dfsort.head(5))
#輸出評論數(shù)量累計前五名作者
top=  ①  
dfbk=df[df.作者==top]
#根據(jù)作者檢索出相應(yīng)的作品
avg=dfbk.評分.mean()
print("評論數(shù)量累計最多的作者是:", top)
print("共出版了",  ②  ,"部作品,平均評分為" , round(avg,2))
則程序中劃線①②處應(yīng)填入的代碼為:
①          ;
②          。
10.(2024浙江1月選考,14,7分)某學(xué)院舉行運動會,比賽設(shè)跳高、100米等項目,每個項目分男子組和女子組。現(xiàn)要進行報名數(shù)據(jù)處理和比賽成績分析。請回答下列問題:
(1)運動會報名規(guī)則為:對于每個項目的男子組和女子組,每個專業(yè)最多各報5人(如“軟件工程”專業(yè)在男子跳高項目中最多報5人)。軟件工程專業(yè)的報名數(shù)據(jù)保存在DataFrame對象df中,如圖a所示。若要編寫Python 程序檢查該專業(yè)男子跳高項目報名是否符合規(guī)則,下列方法中, 正確的是    (單選,填字母)。
A.從df中篩選出性別為“男”的數(shù)據(jù)dfs,  再從dfs中篩選出項目為“跳高”的數(shù)據(jù),判斷篩選出的數(shù)據(jù)行是否超過5行
B.對df中數(shù)據(jù)按性別排序并保存到dfs中,再從dfs中篩選出項目為“跳高”的數(shù)據(jù),判斷篩選出的數(shù)據(jù)行是否超過5行
C.從df中篩選出項目為“跳高”的數(shù)據(jù)dfs,判斷dfs中是否有連續(xù)5行以上的男生數(shù)據(jù)
(2)運動員比賽成績的部分數(shù)據(jù)如圖b所示。根據(jù)已有名次計算得分,第1名至8名分別計9,7,6,5,4,3,2,1分,第8名之后計0分。實現(xiàn)上述功能的部分Python程序如下,請在程序中劃線處填入合適的代碼。
import pandas as pd
import matplotlib.pyplot as plt
#讀取如圖b 所示數(shù)據(jù),保存到DataFrame對象df1中,代碼略
f=[9,7,6,5,4,3,2,1]
for i in range(0,len(df1)):
rank=df1.at[i,"名次"] #通過行、列標簽取單個值
score=0
if rank<=8:
     
df1.at[i,"得分"]=score
(3)根據(jù)上述df1中的得分數(shù)據(jù),統(tǒng)計各專業(yè)總分,繪制如圖c所示的柱形圖,實現(xiàn)該功能的部分Python程序如下:
df2=df1.groupby("    ",as_index=False).sum()  #分組求和
      
#設(shè)置繪圖參數(shù),代碼略
plt.bar(x,y)    #繪制柱形圖
①請在程序中劃線處填入合適的代碼。
②程序的方框中應(yīng)填入的正確代碼為   (單選,填字母)。
A.x=df1["專業(yè)"]
y=df1["總分"]
B.x=df2["專業(yè)"]
y=df2["得分"]
C.df1["專業(yè)"]="專業(yè)"
df1["總分"]="總分"
D.df2["專業(yè)"]="專業(yè)"
df2["得分"]="得分"
專題三 數(shù)據(jù)處理與應(yīng)用
考點過關(guān)練
考點一 常用表格數(shù)據(jù)的處理
1.(2022諸暨海亮高中期中,16)為了響應(yīng)全民健身計劃,某高中對學(xué)生進行了體質(zhì)健康測評,并用Excel軟件進行數(shù)據(jù)處理,如圖a所示。
圖a
請回答下列問題:
(1)區(qū)域M2:P15 的數(shù)據(jù)是通過公式計算得到的,在M2單元格中輸入公式后,再使用自動填充功能完成該區(qū)域的計算,則N3單元格中的公式是“=SUMPRODUCT((    )*($I$3:$I$553=N$1))”。
(提示:M2單元格輸入公式=SUMPRODUCT((A1:A100=“2”)*(I1:I100=“優(yōu)秀”)),表示同時滿足A1:A100是2班和I1:I100是優(yōu)秀這兩個條件的情況數(shù)量,也就是進行條件計數(shù)。)
(2)根據(jù)圖a中的數(shù)據(jù)制作的圖表如圖b所示。創(chuàng)建該圖表的數(shù)據(jù)區(qū)域是    。
圖b
(3)對圖a工作表進行相關(guān)數(shù)據(jù)分析,下列說法正確的是    (多選,填字母)。
A.以“總分等級”為依據(jù)進行升序排序,選擇的區(qū)域是A3:I553
B.選擇“A3:I553”按照“總分等級”升序排序后,圖 b 的圖表不會發(fā)生改變
C.現(xiàn)需要選出總分等級為“不及格”的學(xué)生,可選擇區(qū)域A3:I553,以“總分等級”為“不及格”進行篩選并保留結(jié)果
D.為了顯示男生立定跳遠得分最高的3位學(xué)生數(shù)據(jù),可先對“性別”為“男”進行篩選,再對“立定跳遠”進行篩選,選擇最大的3項
答案 (1)$A$3:$A$553=$K3 (2)M1:P1,M16:P16
(3)ABC
2.(2023杭州“六縣九校”期中,16)小明同學(xué)為備戰(zhàn)明年的計算機類研究生考試,收集了部分高校的計算機專業(yè)復(fù)試分數(shù)線并進行分析。小明收集到的數(shù)據(jù)如圖a所示。
各院校總分展示圖
請幫助小明同學(xué)對表格數(shù)據(jù)進行下列分析:
(1)若想知道這些學(xué)校的總分情況,則在F2單元格先輸入公式       (要求必須使用函數(shù)),然后使用自動填充功能完成單元格F3:F8 的計算。
(2)現(xiàn)要求按照“總分”列進行降序排序,并篩選出總分在290分及以上的院校并顯示,最后繪制各個院校總分的垂直柱形圖(如圖b)。請在程序劃線①②③處填入合適的代碼。
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['KaiTi','SimHei','FangSong'] #圖表中文顯示處理
df=pd.read_excel ("score.xlsx")
df1=df[  ①   ]
print(df1)#輸出篩選數(shù)據(jù)
df=df.  ②   ("總分",ascending=False)#按照“總分”列降序排序
print(df)#輸出排序好的數(shù)據(jù)
#------創(chuàng)建圖表代碼------
plt.title("各院校總分展示圖")
plt.xlabel("院校名稱")
plt.  ③   (df.院校名稱,df.總分)  #各個院校總分的垂直柱形圖
plt.show()
答案 (1)=SUM (B2:E2) (2)①df.總分>=290或者df["總分"]>=290 ②sort_values ③bar
3.(2023杭州S9聯(lián)盟聯(lián)考,14)小明收集了當?shù)?023年3月份的天氣情況,數(shù)據(jù)存儲在文件“temp.xlsx”中,如圖a所示。分析溫差最大的日期,并生成反映各類天氣情況的天數(shù)對比圖如圖b所示。
(1)在對表格進行數(shù)據(jù)整理時發(fā)現(xiàn),“日期”可能存在的數(shù)據(jù)問題是     (單選:A.數(shù)據(jù)缺失;B.數(shù)據(jù)異常;C.邏輯錯誤;D.數(shù)據(jù)格式不一致)。
(2)程序代碼如下所示,請在劃線處填入合適的代碼。
import matplotlib.pyplot as plt
import pandas as pd
plt.rcParams["font.sans-serif"]=["SimHei"] #設(shè)置中文字體
df=pd.read_excel("temp.xlsx")
df["溫差"]=  ①  #新增"溫差"列
s=df.sort_values("溫差", ascending=False, ignore_index=True)
df_max=  ②   #獲取溫差最大的日期,如并列只輸出第一個日期
print(df_max)
df_t=s.groupby("天氣", as_index=False).count()
df_t=df_t.rename(columns={"日期": "天數(shù)"}) #修改列名"日期"為"天數(shù)"
x=df_t["天氣"]
y=df_t["天數(shù)"]
  ③  (x, y, label="天氣情況")
plt.legend()
plt.show()
(3)觀察圖b,3月份天數(shù)最多的天氣類型是    。
答案 (1)D (2)①df["最高氣溫"]-df["最低氣溫"] 
②s["日期"][0]或 s.at[0,"日期"] ③plt.bar (3)小雨
4.(2023杭州地區(qū)重點中學(xué)期中,15)某中學(xué)高一年級完成一次7選3意向調(diào)查,數(shù)據(jù)存儲在“xk73.xlsx”中,如圖a所示,其中1代表選擇科目,0代表棄選科目。
(1)使用 pandas 編程計算本次選課各門課人數(shù)占總?cè)藬?shù)的比例, 請在劃線處填入合適的代碼。
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']#圖表顯示中文
df=pd.read_excel ("  ①  ")
a=[" "]*len(df) #存儲每個學(xué)生的選課組合
dic={"物":0,"化":0,"生":0,"政":0,"歷":0,"地":0,"技":0}
for i in df.index:
  for j in df.columns[3:]:
   if df.at[i,j]==1:
       ②  
     a[i]+=j
for i in dic.keys():
  dic[i]=round(dic[i]/len(df)*100,2)
(2)按照各科選考人數(shù)占比創(chuàng)建如圖b所示的圖表。
各科選考人數(shù)占比
df1=pd.DataFrame({"學(xué)科":dic.keys(),"人數(shù)占比":dic.values()})
df1=  ①  
plt.title("各科選考人數(shù)占比")
plt.bar(  ②   , label="人數(shù)占比")
plt.legend()
plt.show()
觀察圖b,橫線處應(yīng)填入的代碼為:①   ;②   (選填字母)。
A.df1.sort_values("人數(shù)占比",ascending=True)
B.df1.sort_values("人數(shù)占比",ascending=False)
C.df1.學(xué)科,df1.人數(shù)占比
D.df1.人數(shù)占比,df1.學(xué)科
(3)小李同學(xué)想查詢某種七選三組合有多少人。以下程序代碼可以為小李同學(xué)提供查詢功能,程序運行示例如圖c所示,請在劃線處填入合適的代碼。
請輸入需要查詢的選課組合:物化技
選擇物化技組合的同學(xué)共有:192人
圖c
cx=input("請輸入需要查詢的選課組合:")
cnt=0
for i in range(len(a)):
  if     :
   cnt=cnt+1
print(f"選擇{cx}組合的同學(xué)共有: {cnt}人")
答案 (1)①xk73.xlsx ②dic[j]+=1 (2)①B ②C (3)a[i]==cx或其他等價表達式
5.(2023浙江1月選考,14,9分)小紅收集了部分城市2021年全年每天PM2.5、PM10、CO濃度數(shù)據(jù),每天的數(shù)據(jù)分別保存在以8位日期字符串命名的CSV文件中,部分文件如圖a所示,每個文件記錄了一天24小時的監(jiān)測數(shù)據(jù),示例如圖b所示。
  
為統(tǒng)計分析城市A全年各月份PM2.5的月平均濃度(當月的日平均濃度的平均值),編寫Python程序。請回答下列問題:
(1)定義pmday函數(shù),功能為:讀取某天的CSV文件,返回城市A當天PM2.5的日平均濃度。函數(shù)代碼如下,劃線處應(yīng)填入的代碼為    (單選,填字母)。
A.df['類型']=='PM2.5'
B.df['類型'=='PM2.5']
C.df[df['類型']]=='PM2.5'
D.df[df['類型']=='PM2.5']
import pandas as pd
def pmday(dayfile):
df=pd.read_csv(dayfile)  #讀取文件 dayfile 中的數(shù)據(jù)
df=   
return df['城市A'].mean()  #返回城市A當天PM2.5的日平均濃度
(2)統(tǒng)計城市A各月份PM2.5的月平均濃度并繪制線形圖,部分Python程序如下,請在劃線處填入合適的代碼。
import matplotlib.pyplot as plt
def tstr(t):
if t<10:
  retrun '0'+str(t)
else:
  retrun str(t)
pm=[0]*12
mdays=[31,28,31,30,31,30,31,31,30,31,30,31]  #2021年每月天數(shù)
for m in range(12):
  sm=0
mstr=tstr(m+1)
for d in range( ① ):
dstr=tstr(d+1)
dayfile='2021'+ mstr+ dstr+ '.csv'
sd=pmday(dayfile)
 ② 
pm[m]=sm/mdays[m]
x=[1,2,3,4,5,6,7,8,9,10,11,12]
y= ③ 
plt.plot(x,y)  #繪制線形圖
#設(shè)置繪圖參數(shù),顯示如圖c所示線形圖,代碼略
(3)城市A 2021年 PM2.5年平均濃度為34.6微克/立方米。由圖c可知,城市A 2021年 PM2.5月平均濃度超過年平均濃度的月份共    個。
答案 (1)D (2)①mdays[m] ②sm+=sd ③pm (3)5
考點二 大數(shù)據(jù)處理
1.(2023寧波三鋒期中,2)下列關(guān)于大數(shù)據(jù)與大數(shù)據(jù)處理的說法,不正確的是(  )
A.處理大數(shù)據(jù)時,一般采用分治思想
B.大數(shù)據(jù)的處理對象是全體數(shù)據(jù),而不是抽樣數(shù)據(jù)
C.大數(shù)據(jù)的特點是數(shù)據(jù)量大、速度快、數(shù)據(jù)類型多、價值密度低
D.Hadoop是一個可運行于大規(guī)模計算機集群上的分布式系統(tǒng)基礎(chǔ)架構(gòu),適用于處理實時數(shù)據(jù)
答案 D 
2.(2023金華十校聯(lián)考,3)下列有關(guān)大數(shù)據(jù)處理、數(shù)據(jù)可視化的說法不正確的是(  )
A.靜態(tài)數(shù)據(jù)是指處理時已收集完成、計算時不會發(fā)生改變的數(shù)據(jù)
B.流數(shù)據(jù)主要是指不間斷地、持續(xù)地到達的實時數(shù)據(jù)
C.圖計算是指有關(guān)大量圖片的計算
D.“各省生產(chǎn)總值占比情況”可以采用餅圖或環(huán)形圖呈現(xiàn)
答案 C 
3.有Python程序段如下所示:
import pandas as pd
import numpy as np
a=np.array([1,2,3,4]).reshape(2,2)
df=pd.DataFrame(a)
print(df.at[1,1])
該程序段運行后輸出的結(jié)果為(  )
A.4   B.3   C.2   D.1
答案 A 
4.小張收集了近階段要學(xué)習(xí)的英文單詞,存儲為“data.txt”文件,格式如圖所示。
處理“data.txt”文件中的英文單詞的Python程序段如下所示:
file='data.txt'
word_c=[]
n=0
for word in open(file):
  if word[0:1]=="c":
    word_c.append(word)
       
print('字母c開頭的單詞個數(shù)為:',n)
(1)劃線處的代碼為    。
(2)該程序段運行后,列表word_c中的數(shù)據(jù)為                 。
答案 (1)n=n+1或n+=1 (2)data.txt中所有以小寫字母"c"開頭的單詞
5.請在空格處填寫正確的代碼,使程序完善。
實現(xiàn)功能:繪制y=x2-2x+1的圖象。
#加載numpy模塊并取名為np
import numpy as np
#加載matplotlib.pyplot模塊并取名為plt
import matplotlib.pyplot as plt
# x在-7到9之間,每隔0.1取一個值
x=np.arange(-7,9,0.1)
 ① =x**2-2*x+1
plt.plot(x, ② )
plt.title('y=x*x-2*x+1')
plt.xlabel('x')
plt.ylabel('y')
plt. ③ 
答案 ①y ②y ③show()
6.在網(wǎng)上搜索朱自清的文章《綠》,如圖所示。
(1)搜索信息并保存為txt文件,該過程稱為     。
(2)“綠.txt”文件的文本類型是    。(填寫字母:A.結(jié)構(gòu)化數(shù)據(jù)/B.半結(jié)構(gòu)化數(shù)據(jù)/C.非結(jié)構(gòu)化數(shù)據(jù))
(3)制作標簽云的代碼如下:
import collections
import jieba
import wordcloud as wc
import numpy as np
from PIL import Image
wcg=wc.WordCloud(background_color="white",font_path='assets/msyh.ttf')
text=open('data/綠.txt',encoding='utf-8')
read()
seg_list= ① 
f=collections.Counter(seg_list)
wcg.fit_words(f)
wcg.to_file('output/b.png')
劃線處①語句是調(diào)用jieba對象的cut函數(shù)對變量為text的文件進行分詞,則該處語句為       。
(4)得到的標簽云如圖所示。
該圖片的文件名是    ,表現(xiàn)該文本特征的是            。(至少寫出3個)
答案 (1)采集信息 (2)C (3)jieba.cut(text)
(4)b.png;我、的、著、了、綠、你
專題綜合練
題組一
1.(2023十校聯(lián)盟聯(lián)考,5)近年來,各地相繼出現(xiàn)了一些無人售貨超市,其購物流程為:通過微信號/支付寶注冊→掃碼或掃臉開門→選購商品→結(jié)算區(qū)顯示屏清單確認(智能檢測)→開門即走(智能扣款)。整個過程快捷方便,達到無感支付。超市內(nèi)24小時利用攝像頭監(jiān)控,實行人臉識別防盜監(jiān)控,發(fā)現(xiàn)有小偷將自動抓拍報警并列入黑名單,通過RFID技術(shù)+核心軟件算法有效識別和定位貨損源頭,并進行有效處理和防范。此外,超市也會依靠大數(shù)據(jù)、云計算技術(shù),對各種商品的銷售狀況進行匯總分析,并智能判斷客戶的購買習(xí)慣進行產(chǎn)品推薦,還能預(yù)測銷售走勢,給商家提供合理的建議。
根據(jù)閱讀材料,下列說法正確的是(  )
A.匯總分析已完成的商品銷售狀況數(shù)據(jù)屬于流數(shù)據(jù)
B.無人售貨超市依靠大數(shù)據(jù)處理只需要分析最近幾個月的抽樣數(shù)據(jù)
C.根據(jù)客戶賬號的購買習(xí)慣進行產(chǎn)品推薦,不需要知道用戶購買商品的原因
D.無人售貨超市中的每一個數(shù)據(jù)都來自真實數(shù)據(jù),體現(xiàn)了大數(shù)據(jù)價值密度高的特點
答案 C 
2.(2023舟山高二期末,12)小明用下列Python程序?qū)Da處理成圖b所示效果,發(fā)現(xiàn)處理后的圖像不理想,他要想將圖像處理成圖c所示效果,則可做的修改是(  )
  
from PIL import Image#第0行
import numpy as np#第1行
import matplotlib.pyplot as plt#第2行
img=np.array(Image.open ('dj.jpg').convert('L'))#第3行
row,cols=img.shape#第4行
for i in range(row):#第5行
  for j in range(cols):#第6行
    if img[i,j]>188:#第7行
      img[i,j]=1 #1表示白色#第8行
    else:#第9行
      img[i,j]=0 #0 表示黑色
#第10行
      plt.figure('dj')#第11行
    plt.imshow(img,cmap='gray')
#第12行
  plt.axis('off')#第13行
plt.show ()
A.將第7行中的數(shù)字188改成138
B.將第7行中的數(shù)字188改成250
C.將第7行中的>改成<
D.將第8行的代碼與第10行的代碼互換
答案 A 
3.(2022杭州重點中學(xué)期中,13)小蕭從國家統(tǒng)計局網(wǎng)站上收集了近幾年國民總收入相關(guān)數(shù)據(jù),并使用Excel軟件進行相關(guān)數(shù)據(jù)處理與分析。部分界面如圖a所示,請回答下列問題:
(1)下列關(guān)于數(shù)據(jù)整理的描述,正確的是  (單選)。
A.某些缺失的數(shù)據(jù)可以自己隨意估計一個值進行補充
B.Excel表格中的異常數(shù)據(jù)可以直接刪除或忽略
C.Excel表格中的重復(fù)數(shù)據(jù)可以進行合并或刪除
D.Excel中格式不一致的數(shù)據(jù),一般只保留一種格式的數(shù)據(jù),刪除其他格式的數(shù)據(jù)
(2)圖b的圖表數(shù)據(jù)類型為    (選填:柱形圖/條形圖/折線圖)。
圖b
(3)根據(jù)表格數(shù)據(jù)呈現(xiàn),從2017年開始可以計算國民總收入增長比例,方法是在C8單元格輸入公式      (計算公式:(當年國民總收入-去年國民總收入)/去年國民總收入),設(shè)置百分比格式后自動填充至F8單元格。
(4)除了Excel,可以進行數(shù)據(jù)分析的軟件還有    (多選,填數(shù)字)。
①Word ②SPSS ③SAS ④MATLAB
⑤記事本 ⑥Python ⑦錄音機
答案 (1)C (2)柱形圖 (3)=(C2-B2)/B2
(4)②③④⑥
4.(2022杭州八縣市區(qū)期末,16)某次測試的Excel文件成績表如圖1所示。
圖1
(1)已知有200名同學(xué)參加了本次測試。小明想把全體同學(xué)的信息平均分放在D202單元格,那么在 D202單元格輸入的公式為         。
(2)現(xiàn)在要求用Python增加“總分”列數(shù)據(jù),然后求每個班總分的平均分(如圖2),最后繪制每班總分平均分的垂直柱形圖(如圖3)。請在程序劃線①②處選擇合適的代碼(填字母)。
圖2
圖3
import pandas as pd
import matplotlib.pyplot as plt
#圖表中文顯示處理,代碼略
df=pd.read_excel("test.xlsx")
score=[]
for i in df.values:
js=  ①   #①處請選擇(填字母): A.df["信息"]+df["通用"]/B.i[3]+i[4]
score.append(js)
df["總分"]=score
df1=df.groupby("班級".as_index=False)["總分"].mean()
plt.title("期中技術(shù)平均分")
plt.  ②  (df1["班級"],df1["總分"],width=0.5)#②處請選擇(填字母):
A.plot/B.bar/C.scatter
答案 (1)=AVERAGE(D2:D201) (2)①B ②B
5.(2022麗水期末,13)小明收集了本周信息技術(shù)學(xué)科學(xué)習(xí)評價的數(shù)據(jù),如圖所示。
(1)觀察上表小明做了如下操作,其中屬于數(shù)據(jù)整理的是    (多選,填字母)。
A.刪除重復(fù)行第五行
B.驗證并修改D2單元格數(shù)據(jù)
C.通過公式計算全班平均分
D.重新設(shè)置C3單元格格式
(2)為了分析每個組的平均分,設(shè)計了如下Python程序。
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel("成績表.xlsx")
                
print(df1)
劃線處的代碼應(yīng)為    (單選,填字母)。
A.df1=df.groupby("平均分").mean()
B.df1=df.mean()
C.df1=df.groupby("小組").mean()
D.df1=df["小組"].mean()
(3)利用Python程序繪制各小題得分率圖表,如圖所示。
請在劃線處填寫合適的代碼。
num=int(input("請輸入小組:"))
plt.figure(figsize=(10,5))
list=[]
for i in range(12):
  s="題"+str(i+1)
  list.append(df1.at[num,s]*50)
plt.bar(range(1,13),list)
plt.title(str(num)+"    ")
plt.xlabel("question number")
plt.ylabel("correct rate")
plt.show()
答案 (1)ABD (2)C (3)group
6.(2024屆A9協(xié)作體返校考,14)張三同學(xué)收集了一個地區(qū)8月各類共享單車的騎行數(shù)據(jù)記錄,每天的用戶數(shù)據(jù)存儲于“shared bikes. xlsx”文件中,不考慮跨天數(shù)據(jù)。數(shù)據(jù)格式如圖a所示,請回答下列問題:
(1) cal函數(shù)功能為:讀取騎行時間的小時和分鐘部分,轉(zhuǎn)換為分鐘格式并返回,如“2022/8/20 6:57”獲取“6:57”轉(zhuǎn)換為417 (6*60+57=417), 代碼如下。請在劃線處填入合適的代碼。
def cal(s):
  n=len(s)
  for i in range(n):
   if s[i]==" ": #如果為空格字符
    p=i
   if s[i]==":":
    q=i
  t=       + int(s[q+1:])
  return t
(2)統(tǒng)計本月各類型單車的每天平均騎行時長,并繪制柱形圖,代碼如下,繪制的圖表如圖b所示,請在劃線處填入合適的代碼。
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel ("shared bikes.xlsx")
bike=["哈羅單車","摩拜單車","美團單車","青桔單車"]
sm=[0]*4
avg=[0]*4
days=31
for i in   ①  :
  t=cal(df.at[i, "結(jié)束時間"]) - cal (df. at[i, "開始時間"])
  for j in range(4):
   if df.at[i,"App 類型”]==bike[j]:
      ②  
    break
for i in range(4):
  avg[i]=sm[i]/ days
plt.figure(figsize=(12, 4))
x=bike
y=  ③  
plt.bar(x, y)
plt.show()
(3)統(tǒng)計本月各類型單車的騎行次數(shù),加框處代碼有錯,可以改正為    (選填字母:A.max()/B.min()/C.mean()/D.count())。
n=df. groupby("App類型",as_ index=True).用戶編號.sum ()
答案 (1)int(s[p+1:q])*60 (2)①df.index或range(len(df)) ②sm[j]+=t ③avg (3)D
7.(2024屆紹興診斷性測試,14)學(xué)校暑期開展“青春迎亞運”活動,邀請高二學(xué)生每日參加運動鍛煉并進行線上打卡。每周收集一次相關(guān)數(shù)據(jù),分別保存在相應(yīng)的xlsx文件中,部分文件如圖a所示。每個文件記錄了一周7天的打卡數(shù)據(jù),示例如圖b所示,其中運動時長單位為分鐘。
為統(tǒng)計分析學(xué)生鍛煉情況,給出周報數(shù)據(jù),編寫Python程序,請回答以下問題:
(1)定義px函數(shù),功能為:讀取某一周的打卡數(shù)據(jù),將其按班級進行排序操作并返回結(jié)果。
函數(shù)代碼如下,將劃線處代碼補充完整。
import pandas as pd
def px(file_week):
  df=pd.read_excel(file_week)
  df=df.sort_values(   ,ignore_index=True)
  #按班級升序排序,參數(shù)ignore_index=True表示更新索引
  return df
(2)統(tǒng)計某一周各運動項目的參與人次,并繪制柱形圖,如圖c所示,部分Python代碼如下:
import matplotlib.pyplot as plt
s=input("請輸入文件名: ")
df=px(s)
df1=df.groupby("運動項目".as_index=False).  ①  #統(tǒng)計各運動項目參與人次
df1.rename(columns={"學(xué)號":"參與人次"},inplace=True) #更改列標題
plt.bar(  ②  )
plt.xlabel("運動項目")
plt.ylabel("參與人次")
plt.show()
劃線處應(yīng)填入的代碼為  (單選,填字母)。
A.①count() ②df1["參與人次"], df1["運動項目"]
B.①sum() ②df1["參與人次"], df1["運動項目"]
C.①sum() ②df1.運動項目, df1.參與人次
D.①count() ②df1.運動項目, df1.參與人次
(3)統(tǒng)計某一周每班各學(xué)生的總運動時長后,比較得出該周每班最高的兩位時長,部分Python程序代碼如下,請在劃線處填入合適的代碼。
qp=[[0 for i in range(m)]for j in range(n)]
'''
定義數(shù)組qp記錄每班各學(xué)生一周運動總時長,n為班級數(shù),m為每班人數(shù)。其中qp[0][0]~qp[0][m-1]存儲1班1號~m號同學(xué)的每周運動總時長,依次類推,qp[n-1][0]~qp[n-1][m-1]存儲n班1號~m號同學(xué)的每周運動總時長。
'''
print("本周每班最高的兩位時長分別為: ")
  i=0
  while i    num=df["學(xué)號"][i]
cla=df["班級"][i]
  ①  
if i!=0 and df["班級"][i]!=df["班級"][i-1] or  ②  :
   cla=df["班級"][i-1]
k1=0;k2=0
for j in range(1,len(qp[cla-1])):
  if qp[cla-1][j]>qp[cla-1][k1]:
      ③  
    k1=j
  elif qp[cla-1][j]>qp[cla-1][k2]:
    k2=j
print(cla,"班",qp[cla-1][k1].qp[cla-1][k2])
i=i+1
(4)統(tǒng)計某一周各運動項目的參與人次后繪制柱形圖如圖c所示,由圖可知,該周參與人氣最高的運動項目為    。
答案 (1)"班級" (2)D (3)①qp[cla-1][num-1]+=df["運動時長"][i] ②i==len(df)-1 ③k2=k1 
(4)跑步
8.(2024屆寧波模擬,13)已知某年級有6個班級,所有學(xué)生名單存儲在文件“name.csv”中(如圖1),學(xué)校舉行某趣味活動項目中,需要每個班抽3名代表參加比賽,請編寫一個隨機抽取程序,執(zhí)行效果如圖2。請回答以下問題:
   
(1)加框處代碼的作用是 。
(2)實現(xiàn)上述功能的部分Python程序如下,請在劃線處填寫合適的代碼。
import csv
import random #數(shù)據(jù)讀入
f=open("name.csv","r")
flines=csv.reader(f)
name_list=[]
m=6 #班級總數(shù)
total=18 #參賽總?cè)藬?shù)
for line in flines:
if line[0]=="班級":
continue #跳過當前循環(huán)的剩余語句,繼續(xù)進行下一次循環(huán)
name_list.append(line)
  ①  
flag=[False]*n
grade=[3]*m
i=0
while i  p=random.randint( ② , ③ )
  bj=int(name_list[p][0])
  if flag[p]==False:
    if grade[bj-1]>0:
     flag[p]=True
  ④  
i+=1
print("抽取名單為: ")
print("班級","姓名")
for i in range(n):
if flag[i]:
  print(name_list[i][0],name_list[i][1])
f.close()
答案 (1)列表name_list中的數(shù)據(jù)不包括標題行 
(2)①n=len(name_list) ②0 ③n-1 ④grade[bj-1]-=1
9.(2023杭州地區(qū)重點中學(xué)聯(lián)考,14)小明利用“在線社團報名系統(tǒng)”收集了全校學(xué)生的社團報名信息,并將報名數(shù)據(jù)導(dǎo)出到“社團報名.xlsx”中,如圖1所示。然后編寫Python程序?qū)竺麛?shù)據(jù)進行處理,生成分別以班級名和社團名為文件名的 Excel 文件,以便分發(fā)給相應(yīng)的社團指導(dǎo)老師和班主任。
(1)在對表格進行數(shù)據(jù)整理時發(fā)現(xiàn),關(guān)于“Jacky.Y” 同學(xué)的記錄可能存在的數(shù)據(jù)問題是    (選填:A.數(shù)據(jù)缺失 B.數(shù)據(jù)異常 C.邏輯錯誤 D.數(shù)據(jù)格式不一致)。
(2)其中生成每個社團名單文件的過程是:先對報名數(shù)據(jù)按社團名稱進行分類,并對選報同一社團的學(xué)生按班級進行升序排序,然后生成各個社團名單文件,如圖 2所示。對應(yīng)的程序代碼如下,請在劃線處填寫合適的代碼。
 import pandas as pd
 def read_file(filename):
   #讀入報名數(shù)據(jù)的原始文件,并將表中的數(shù)據(jù)轉(zhuǎn)換成列表,代碼略
 def save_file(a): #保存名單到相應(yīng)社團的Excel電子表格文件
   df=pd.DataFrame(a,columns=["班級","姓名","選報社團"])
   df.to_excel(  ①  )+".xlsx",index=False)
 a=read_file("社團報名.xlsx")
 n=len(a)
 #按社團名(參照拼音的字母順序)進行升序排序,代碼略
 #統(tǒng)計各社團人數(shù),存在列表 rs 中,rs=[["滑板社",36],…],代碼略
 s=0
 for i in range(len(rs)):
     ②  
   left,right=s, s+num-1
   while left < right:
    imin=imax=left
    for k in range(left+1,right+1):
      if a[k][0] < a[imin][0]:
        imin=k
      elif a[k][0] > a[imax][0]:
        imax=k
    if imin !=left:
      a[imin],a[left]=a[left],a[imin]
    if imax==left:
        ③  
    if imax !=right:
      a[imax],a[right]=a[right],a[imax]
    left=left+1; right=right-1
   ④  
 s+=num
答案 (1)B (2)①a[0][2]或df.at[0,"選報社團"] 或 df["選報社團"][0] ②num=rs[i][1] ③imax=imin 
④save_file(a[s:s+num])
題組二
1.(2022諸暨期末,4)使用pandas編程處理數(shù)據(jù)DF1,下列選項能實現(xiàn)行列轉(zhuǎn)置操作的是(  )
A.DF1.T    B.DF1.columns
C.DF1.values    D.DF1.index
答案 A 
2.(2022寧波奉化期末,9) 有如下Python程序段:
import pandas as pd
s=pd.Series(range(5,11,3))
s[1]=15
print(s)
該程序執(zhí)行后,輸出的結(jié)果是(  )
1  15 2  8 dtype: int64 0  5 1  15 dtype: int64 1  15 2  8 3  11 dtype: int64 0   5 1  15 2  11 dtype: int64
  A.    B.    C.    D.
答案 B 
3.(2022寧波咸祥中學(xué)期中,16)小明收集了某超市飲料銷售情況相關(guān)數(shù)據(jù),并使用Excel軟件進行處理,如圖a所示。
請回答下列問題:
(1) 區(qū)域 I3:I15 的數(shù)據(jù)是通過公式計算得到的。在I3單元格輸入公式后, 用自動填充功能完成 I4:I15 的計算,則I3單元格中的公式是      。 (占銷售總額百分比=銷售額(元)/銷售總額(元))
(2)若因誤操作將 I16 單元格刪除,則 I3 單元格會顯示   (選填字母:A.#VALUE B.#DIV/0! C.###### D.#REF! )。
(3)要將類別為“可樂”的飲料以“毛利潤(元)”為主要關(guān)鍵字降序排序, 則選擇排序的區(qū)域為    。
(4)小王根據(jù)圖 a 中的數(shù)據(jù),制作了一張反映橙汁類飲料銷售額和毛利潤對比的圖表,如圖b 所示,則建立該圖表的數(shù)據(jù)區(qū)域是    。將E8單元格數(shù)值修改成6.00,是否會影響該圖表    (選填:是/否)
圖b
答案 (1)=G3/$I$16或=G3/I$16 (2)B (3)B8:I11
(4)B2,G2:H2,B5:B7,G5:H7;否
4.(2022臺州啟超中學(xué)期中,16)APP活躍人數(shù)數(shù)據(jù)存儲在“app.xlsx”文件中,如圖所示,現(xiàn)要編程統(tǒng)計結(jié)果,請回答下列問題:
若要把“app.xlsx”第1張工作表中的信息導(dǎo)入到book1對象中,并進行統(tǒng)計,實現(xiàn)這個功能的Python代碼如下,在程序劃線處填入合適的代碼。
import pandas as pd
book1=   (1)      #讀取app.xlsx文件數(shù)據(jù),并存儲在book1對象中
book1_sum=   (2)   
#計算10月人數(shù)之和
book1_aver=   (3)   
#計算11月人數(shù)平均值
book1_g=   (4)   
#按應(yīng)用領(lǐng)域分組統(tǒng)計
book1_sort=   (5)   
#按11月人數(shù)值,降序排序
print("10月人數(shù)之和:",book1_sum)
print("11月人數(shù)平均值:",book1_aver)
答案 (1)pd.read_excel("app.xlsx")  (2)book1["10月人數(shù)"].sum() (3)book1["11月人數(shù)"].mean()
(4)book1.groupby("應(yīng)用領(lǐng)域")
(5)book1.sort_values("11月人數(shù)",ascending=False)
5.(2022寧波奉化期末,14)小孫收集了2016年到2020年的各地區(qū)糧食生產(chǎn)總量并存儲在“l(fā)scl.xlsx”文件中,如圖a所示,現(xiàn)使用Python對其進行數(shù)據(jù)處理,并實現(xiàn)數(shù)據(jù)可視化,繪制的圖表如圖b所示。
實現(xiàn)如上功能的代碼如下,請回答以下問題。
import pandas as pd
import matplotlib.pyplot as plt
plt.rc('font', **{'family': 'SimHei'})
#設(shè)置中文字體
df=pd.read_excel("lscl.xlsx")
df.   ①    ("2020年",ascending=False,inplace=True) 
df1=df.head(10)
x=    ②    
y=df1["2020年"]
plt.figure(figsize=(8,6))
plt.   ③   ("2020年糧食產(chǎn)量TOP10")
plt.bar(x,y,label="2020年")
plt.xlabel("地區(qū)")
plt.legend()
  ④  
(1)請在劃線處填入合適的代碼語句,以實現(xiàn)以上功能。
(2)代碼語句“plt.bar(x,y,label="2020年")”的功能為繪制如圖b所示的圖像,能夠?qū)崿F(xiàn)相同功能的語句是    (多選題,少選得1分,多選不得分)。
A.df.head(10).plot("地區(qū)","2020年")
B.df[:10:].plot("地區(qū)","2020年",kind="bar")
C.plt.plot(x,y,label="2020年",kind="bar")
D.plt.bar("地區(qū)","2020年",label="2020年")
E.df1.plot("地區(qū)","2020年",kind="bar")
答案 (1)①sort_values ②df1["地區(qū)"] 或 df1.地區(qū)
③title ④plt.show() (2)BE
6.(2022杭州場口中學(xué)、桐廬富春中學(xué)檢測,16)在月考之后,學(xué)校教務(wù)員拿到了高一年級月考的基礎(chǔ)成績并用Excel軟件進行數(shù)據(jù)處理,如圖1所示。請回答下列問題:
圖1
(1)區(qū)域M2:M645的數(shù)據(jù)是通過在M2單元格輸入公式并自動填充得到的,則M645單元格中的公式是      。
(2)為了分析各班級的數(shù)學(xué)平均分,設(shè)計了如下Python程序,利用其繪制各班數(shù)學(xué)平均分圖表,如圖2所示:
結(jié)合上圖的效果,請在程序劃線處填寫合適的代碼。
import matplotlib.pyplot as plt
import pandas as pd
df=pd.read_excel('高一月考成績.xlsx')
df1=df.groupby("班級").   ①  
plt.bar(df1.index,  ②  )
plt.title("高一各班數(shù)學(xué)平均分")
plt.ylim(40,100)
plt.xlabel(  ③  )
plt.ylabel("分數(shù)")
plt.show()
答案 (1)=SUM(D645:L645)  (2)①mean() ②df1.數(shù)學(xué) ③"班級"
7.(2023 三月百校聯(lián)考,14)李明收集了梅西2004年至2022年俱樂部比賽數(shù)據(jù),保存在“梅西俱樂部詳細比賽數(shù)據(jù).xlsx”文件中,部分數(shù)據(jù)如圖a所示,現(xiàn)在利用pandas模塊處理數(shù)據(jù)。
(1)梅西2004年10月—2021年7月效力于巴塞羅那俱樂部,2021年8月轉(zhuǎn)會至巴黎圣日耳曼俱樂部,現(xiàn)在李明想知道梅西每個賽季的勝率,實現(xiàn)上述功能的Python程序如下,請在劃線處填入合適的代碼。
 import pandas as pd
 import matplotlib.pyplot as plt
 df=pd.read_excel("梅西俱樂部詳細比賽數(shù)據(jù).xlsx")
 df['年']=pd.to_datetime(df["時間"]).dt.strftime('%Y').astype(int)
 df['月']=pd.to_datetime(df["時間"]).dt.strftime('%m').astype(int)
 df['勝負情況']=" "
 for i in range(len(df)):
   f=True;z=0;k=0
   for c in df["比分"][i]:
    if   ①  :
      if f:
        z=z*10+int(c)
      else:
        k=k*10+int(c)
    else:
      f=not f
   jlb="巴塞羅那"
   if df["年"][i]*100+df["月"][i]>=202108:
       ②  
   if (df["主隊"][i]==jlb and z>k) or (df["客隊"][i]==jlb and z    df['勝負情況'][i]="勝"
   elif z==k:
    df['勝負情況'][i]="平"
   else:
    df['勝負情況'][i]="負"
 g=df.groupby(df["年"],as_index=True).count()
   ③  
 g1=df1.groupby(df1["年"],as_index=True).count()
 g["勝率"]=g1["勝負情況"]/g["勝負情況"]*100
(2)圖b為2004—2022年梅西俱樂部比賽勝率統(tǒng)計圖。
2004-2022年梅西俱樂部比賽勝率統(tǒng)計
 plt.plot(    , marker='^')
 plt.title("2004-2022年梅西俱樂部比賽勝率統(tǒng)計")
 plt.show()
方框處代碼為    (多選:填字母)。
A.g["年"],g["勝率"]     B.g["年"],g.勝率
C.g.index,g["勝率"]     D.g.index,g.勝率
答案 (1)①c!="-" 或c>="0" and c<="9" ②jlb="巴黎圣日耳曼" ③df1=df[df['勝負情況']=="勝"] (2)CD
8.(2022湖州三賢聯(lián)盟期中,14)小張同學(xué)為了更好地了解冬奧會,從網(wǎng)上收集了歷屆冬奧會各個項目比賽信息,收集到的部分數(shù)據(jù)如圖1所示。
圖1
圖2
為分析數(shù)據(jù),小張編寫了如下程序:
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator
plt.rcParams['font.sans-serif']=['SimHei'] #正常顯示中文標簽
df=pd.read_csv("dongao.csv")
#刪除所有未獲得獎牌的記錄,并將獎牌列中的"G"修改為"金牌","S"修改為"銀牌","B"修改為"銅牌"
jp={'G':'金牌','S':'銀牌','B':'銅牌'}
for i in df.index:
  if  ①  :
    df=df.drop(i)
  else:
    df.at[i,'獎牌']=jp[df.at[i,'獎牌']]
#對輸入國家每屆的獎牌數(shù)進行統(tǒng)計,并制作相應(yīng)圖表,如圖2所示
nt=input("請輸入國家名稱:")
df1=df[df['國家']==nt]
      
df3=pd.DataFrame(df2) #將分組后數(shù)據(jù)生成新的二維結(jié)構(gòu),索引為“屆次”,列標題為“獎牌”
x=df3.index
y=  ②  
plt.title(nt+"歷屆冬奧會獎牌趨勢圖")
plt.  ③  (x,y)
plt.show()
(1)在劃線處填上合適的代碼。
(2)為了能顯示某國歷屆冬奧會獎牌變化,需在加框處添加的語句為    (多選)。
A.df2=df1.groupby('獎牌')
df2=df1.屆次.count()
B.df2=df1.groupby('屆次')
df2=df2['獎牌'].count()
C.df2=df1.groupby('獎牌')['屆次'].count() 
D.df2=df1.groupby('屆次').獎牌.count()
答案 (1)①df.at[i,'獎牌']=='0'或 df.獎牌[i]=='0'或 df['獎牌'][i]=='0' ②df3["獎牌"]或 df3.獎牌 ③plot (2)BD
9.(2023十校聯(lián)盟聯(lián)考,14)小明從網(wǎng)上下載了豆瓣圖書1900—2017年間出版的圖書數(shù)據(jù),存儲在Excel文件中,如圖a所示,數(shù)據(jù)表已按出版年份升序排好,包含書名、作者、出版社、出版年份、價格、評分以及評論數(shù)量。他要編寫一個Python程序快速對圖書數(shù)據(jù)進行分析。
(1)為了求評論數(shù)量累計最高的作者及其出版的圖書平均評分,小明需要對圖a所示的表中數(shù)據(jù)進行整理,則下列說法正確的是    (多選,填字母)。
A.第3行和第4行數(shù)據(jù)重復(fù),刪除其中一行即可
B.通過檢測發(fā)現(xiàn)F56168單元格的數(shù)據(jù)存在錯誤,應(yīng)進行修正
C.刪除“出版社”和“出版年份”兩列數(shù)據(jù),不影響分析結(jié)果
D.“評分”及“評論數(shù)量”為0的數(shù)據(jù)沒有任何價值,可以直接刪除
(2)小明利用整理好的數(shù)據(jù),編寫并運行程序,結(jié)果如圖b所示。
作者 評論數(shù)量
0 [日]村上春樹 679101.0
1 [日]東野主吾 664106.0
2 韓寒 623116.0
3 郭敬明 620571.0
4 [英]J.K.羅琳 462476.0
評論數(shù)量累計最多的作者是:[日]村上春樹 共出版了34部作品,平均評分為8.01
圖b
實現(xiàn)上述結(jié)果的Python程序如下:
import pandas as pd
df=pd.read_excel("books.xlsx")
df1=df.groupby("作者", as_index=False)
df2=df1.評論數(shù)量.sum()
dfsort=df2.sort_values("評論數(shù)量" ,ascending=False,ignore_index=True)
print(dfsort.head(5))
#輸出評論數(shù)量累計前五名作者
top=  ①  
dfbk=df[df.作者==top]
#根據(jù)作者檢索出相應(yīng)的作品
avg=dfbk.評分.mean()
print("評論數(shù)量累計最多的作者是:", top)
print("共出版了",  ②  ,"部作品,平均評分為" , round(avg,2))
則程序中劃線①②處應(yīng)填入的代碼為:
①          ;
②          。
答案 (1)BC (2)①dfsort.at[0,"作者"]或dfsort["作者"][0]或其他等價答案 ②len(dfbk)或dfbk.書名.count()或dfbk["書名"].count()
10.(2024浙江1月選考,14,7分)某學(xué)院舉行運動會,比賽設(shè)跳高、100米等項目,每個項目分男子組和女子組。現(xiàn)要進行報名數(shù)據(jù)處理和比賽成績分析。請回答下列問題:
(1)運動會報名規(guī)則為:對于每個項目的男子組和女子組,每個專業(yè)最多各報5人(如“軟件工程”專業(yè)在男子跳高項目中最多報5人)。軟件工程專業(yè)的報名數(shù)據(jù)保存在DataFrame對象df中,如圖a所示。若要編寫Python 程序檢查該專業(yè)男子跳高項目報名是否符合規(guī)則,下列方法中, 正確的是    (單選,填字母)。
A.從df中篩選出性別為“男”的數(shù)據(jù)dfs,  再從dfs中篩選出項目為“跳高”的數(shù)據(jù),判斷篩選出的數(shù)據(jù)行是否超過5行
B.對df中數(shù)據(jù)按性別排序并保存到dfs中,再從dfs中篩選出項目為“跳高”的數(shù)據(jù),判斷篩選出的數(shù)據(jù)行是否超過5行
C.從df中篩選出項目為“跳高”的數(shù)據(jù)dfs,判斷dfs中是否有連續(xù)5行以上的男生數(shù)據(jù)
(2)運動員比賽成績的部分數(shù)據(jù)如圖b所示。根據(jù)已有名次計算得分,第1名至8名分別計9,7,6,5,4,3,2,1分,第8名之后計0分。實現(xiàn)上述功能的部分Python程序如下,請在程序中劃線處填入合適的代碼。
import pandas as pd
import matplotlib.pyplot as plt
#讀取如圖b 所示數(shù)據(jù),保存到DataFrame對象df1中,代碼略
f=[9,7,6,5,4,3,2,1]
for i in range(0,len(df1)):
rank=df1.at[i,"名次"] #通過行、列標簽取單個值
score=0
if rank<=8:
     
df1.at[i,"得分"]=score
(3)根據(jù)上述df1中的得分數(shù)據(jù),統(tǒng)計各專業(yè)總分,繪制如圖c所示的柱形圖,實現(xiàn)該功能的部分Python程序如下:
df2=df1.groupby("    ",as_index=False).sum()  #分組求和
      
#設(shè)置繪圖參數(shù),代碼略
plt.bar(x,y)    #繪制柱形圖
①請在程序中劃線處填入合適的代碼。
②程序的方框中應(yīng)填入的正確代碼為   (單選,填字母)。
A.x=df1["專業(yè)"]
y=df1["總分"]
B.x=df2["專業(yè)"]
y=df2["得分"]
C.df1["專業(yè)"]="專業(yè)"
df1["總分"]="總分"
D.df2["專業(yè)"]="專業(yè)"
df2["得分"]="得分"
答案 (1)A (2)score=f[rank-1]或score=f[int(rank)-1] (3)①專業(yè) ②B
21世紀教育網(wǎng) www.21cnjy.com 精品試卷·第 2 頁 (共 2 頁)
21世紀教育網(wǎng)(www.21cnjy.com)

展開更多......

收起↑

資源預(yù)覽

<pre id="tfb94"><li id="tfb94"></li></pre>

<bdo id="tfb94"><rt id="tfb94"></rt></bdo>
  • <menu id="tfb94"><dl id="tfb94"></dl></menu><i id="tfb94"><acronym id="tfb94"><sub id="tfb94"></sub></acronym></i>

    1. 主站蜘蛛池模板: 长白| 肥东县| 张家港市| 南安市| 邵阳县| 巴彦县| 扎囊县| 离岛区| 湘乡市| 大理市| 丘北县| 中宁县| 广德县| 太仆寺旗| 宿迁市| 深泽县| 元谋县| 长丰县| 靖远县| 高陵县| 夹江县| 安图县| 楚雄市| 建平县| 琼结县| 孝义市| 泗水县| 三台县| 勃利县| 高淳县| 永城市| 乐山市| 汉沽区| 新绛县| 绥化市| 河北省| 岳阳市| 虎林市| 囊谦县| 抚远县| 曲松县|