版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2025年統(tǒng)計(jì)學(xué)期末考試題庫(kù):Python數(shù)據(jù)分析與可視化試題匯編考試時(shí)間:______分鐘總分:______分姓名:______一、Python數(shù)據(jù)分析基礎(chǔ)要求:請(qǐng)根據(jù)以下Python代碼片段,完成以下題目。```pythonimportpandasaspd#創(chuàng)建一個(gè)包含學(xué)生成績(jī)的DataFramedata={'姓名':['張三','李四','王五','趙六'],'語(yǔ)文':[80,85,90,95],'數(shù)學(xué)':[75,80,85,90],'英語(yǔ)':[85,90,95,100]}df=pd.DataFrame(data)#請(qǐng)完成以下任務(wù):#1.計(jì)算每位學(xué)生的總分。#2.找出語(yǔ)文成績(jī)最高的學(xué)生。#3.計(jì)算語(yǔ)文成績(jī)的平均分。#4.將學(xué)生姓名列轉(zhuǎn)換為小寫。#5.刪除數(shù)學(xué)成績(jī)低于80分的學(xué)生記錄。```1.請(qǐng)寫出代碼片段,計(jì)算每位學(xué)生的總分。2.請(qǐng)寫出代碼片段,找出語(yǔ)文成績(jī)最高的學(xué)生。3.請(qǐng)寫出代碼片段,計(jì)算語(yǔ)文成績(jī)的平均分。4.請(qǐng)寫出代碼片段,將學(xué)生姓名列轉(zhuǎn)換為小寫。5.請(qǐng)寫出代碼片段,刪除數(shù)學(xué)成績(jī)低于80分的學(xué)生記錄。二、Python數(shù)據(jù)可視化要求:請(qǐng)根據(jù)以下Python代碼片段,完成以下題目。```pythonimportmatplotlib.pyplotaspltimportpandasaspd#創(chuàng)建一個(gè)包含學(xué)生成績(jī)的DataFramedata={'姓名':['張三','李四','王五','趙六'],'語(yǔ)文':[80,85,90,95],'數(shù)學(xué)':[75,80,85,90],'英語(yǔ)':[85,90,95,100]}df=pd.DataFrame(data)#請(qǐng)完成以下任務(wù):#1.使用條形圖展示每位學(xué)生的語(yǔ)文、數(shù)學(xué)、英語(yǔ)成績(jī)。#2.使用折線圖展示每位學(xué)生的成績(jī)變化趨勢(shì)。#3.使用散點(diǎn)圖展示語(yǔ)文成績(jī)與數(shù)學(xué)成績(jī)之間的關(guān)系。#4.使用餅圖展示每位學(xué)生的成績(jī)分布情況。#5.將以上所有圖表保存為PDF文件。```1.請(qǐng)寫出代碼片段,使用條形圖展示每位學(xué)生的語(yǔ)文、數(shù)學(xué)、英語(yǔ)成績(jī)。2.請(qǐng)寫出代碼片段,使用折線圖展示每位學(xué)生的成績(jī)變化趨勢(shì)。3.請(qǐng)寫出代碼片段,使用散點(diǎn)圖展示語(yǔ)文成績(jī)與數(shù)學(xué)成績(jī)之間的關(guān)系。4.請(qǐng)寫出代碼片段,使用餅圖展示每位學(xué)生的成績(jī)分布情況。5.請(qǐng)寫出代碼片段,將以上所有圖表保存為PDF文件。三、數(shù)據(jù)清洗與處理要求:假設(shè)你從網(wǎng)絡(luò)爬蟲中獲取了一份數(shù)據(jù),其中包含大量缺失值和異常值。請(qǐng)使用Python代碼完成以下任務(wù)。```pythonimportpandasaspd#假設(shè)原始數(shù)據(jù)如下data={'姓名':['張三','李四','王五','趙六','劉七'],'年齡':[25,None,30,22,45],'薪資':[5000,8000,None,12000,5000]}df=pd.DataFrame(data)#請(qǐng)完成以下任務(wù):#1.刪除年齡和薪資中存在缺失值的行。#2.將年齡和薪資列中的異常值(如年齡小于18或薪資低于3000)替換為該列的平均值。#3.使用條件表達(dá)式將年齡大于35的員工薪資增加1000元。#4.將清洗后的數(shù)據(jù)保存為CSV文件。```四、數(shù)據(jù)分析與統(tǒng)計(jì)要求:根據(jù)以下數(shù)據(jù),使用Python完成數(shù)據(jù)分析與統(tǒng)計(jì)任務(wù)。```pythonimportpandasaspd#假設(shè)有一份銷售數(shù)據(jù),包含日期、銷售額、產(chǎn)品類別等信息data={'日期':['2023-01-01','2023-01-02','2023-01-03','2023-01-04','2023-01-05'],'銷售額':[1000,1500,1200,1800,1600],'產(chǎn)品類別':['A','A','B','B','A']}df=pd.DataFrame(data)#請(qǐng)完成以下任務(wù):#1.計(jì)算每個(gè)產(chǎn)品類別的總銷售額。#2.計(jì)算銷售額的平均值、中位數(shù)和眾數(shù)。#3.找出銷售額最大的日期。#4.繪制銷售額隨時(shí)間變化的折線圖。```五、數(shù)據(jù)可視化應(yīng)用要求:使用Python中的Matplotlib庫(kù),根據(jù)以下數(shù)據(jù)繪制一個(gè)合適的數(shù)據(jù)可視化圖表。```pythonimportmatplotlib.pyplotaspltimportpandasaspd#假設(shè)有一份市場(chǎng)調(diào)查數(shù)據(jù),包含產(chǎn)品名稱、滿意度評(píng)分等信息data={'產(chǎn)品名稱':['產(chǎn)品1','產(chǎn)品2','產(chǎn)品3','產(chǎn)品4','產(chǎn)品5'],'滿意度評(píng)分':[4.5,4.2,4.8,4.0,4.7]}df=pd.DataFrame(data)#請(qǐng)完成以下任務(wù):#1.繪制一個(gè)條形圖,展示每個(gè)產(chǎn)品的滿意度評(píng)分。#2.在條形圖的基礎(chǔ)上,添加數(shù)據(jù)標(biāo)簽,顯示每個(gè)產(chǎn)品的具體評(píng)分。#3.調(diào)整圖表的標(biāo)題、標(biāo)簽和顏色,使其更具有吸引力。#4.將繪制好的圖表保存為PNG文件。本次試卷答案如下:一、Python數(shù)據(jù)分析基礎(chǔ)1.計(jì)算每位學(xué)生的總分。```pythondf['總分']=df['語(yǔ)文']+df['數(shù)學(xué)']+df['英語(yǔ)']```解析思路:通過(guò)加和每位學(xué)生的語(yǔ)文、數(shù)學(xué)、英語(yǔ)成績(jī),得到每位學(xué)生的總分,并將這個(gè)新列添加到DataFrame中。2.找出語(yǔ)文成績(jī)最高的學(xué)生。```pythontop_student=df.loc[df['語(yǔ)文'].idxmax()]```解析思路:使用`idxmax()`方法找到語(yǔ)文成績(jī)最高的行索引,然后使用`.loc[]`訪問(wèn)這個(gè)行索引對(duì)應(yīng)的行,得到語(yǔ)文成績(jī)最高的學(xué)生信息。3.計(jì)算語(yǔ)文成績(jī)的平均分。```pythonaverage_chinese=df['語(yǔ)文'].mean()```解析思路:直接調(diào)用`mean()`方法計(jì)算語(yǔ)文成績(jī)列的平均值。4.將學(xué)生姓名列轉(zhuǎn)換為小寫。```pythondf['姓名']=df['姓名'].str.lower()```解析思路:使用`.str.lower()`方法將姓名列中的每個(gè)字符串轉(zhuǎn)換為小寫。5.刪除數(shù)學(xué)成績(jī)低于80分的學(xué)生記錄。```pythondf=df[df['數(shù)學(xué)']>=80]```解析思路:使用布爾索引選擇數(shù)學(xué)成績(jī)大于等于80分的行,然后賦值給原來(lái)的DataFrame。二、Python數(shù)據(jù)可視化1.使用條形圖展示每位學(xué)生的語(yǔ)文、數(shù)學(xué)、英語(yǔ)成績(jī)。```pythonimportmatplotlib.pyplotasplt#設(shè)置繪圖參數(shù)plt.figure(figsize=(10,6))#繪制條形圖plt.bar(df['姓名'],df['語(yǔ)文'],color='blue',label='語(yǔ)文')plt.bar(df['姓名'],df['數(shù)學(xué)'],color='green',bottom=df['語(yǔ)文'],label='數(shù)學(xué)')plt.bar(df['姓名'],df['英語(yǔ)'],color='red',bottom=df['語(yǔ)文']+df['數(shù)學(xué)'],label='英語(yǔ)')#添加標(biāo)題和標(biāo)簽plt.title('學(xué)生成績(jī)條形圖')plt.xlabel('學(xué)生姓名')plt.ylabel('成績(jī)')plt.legend()#顯示圖表plt.show()```解析思路:首先創(chuàng)建一個(gè)合適大小的圖形,然后分別繪制語(yǔ)文、數(shù)學(xué)、英語(yǔ)成績(jī)的條形圖,并設(shè)置顏色、底部位置和標(biāo)簽,最后添加標(biāo)題、標(biāo)簽和圖例,最后顯示圖表。2.使用折線圖展示每位學(xué)生的成績(jī)變化趨勢(shì)。```python#由于沒有提供時(shí)間序列數(shù)據(jù),無(wú)法直接繪制折線圖。以下代碼僅供參考。#假設(shè)數(shù)據(jù)中包含日期和成績(jī)列df['日期']=pd.to_datetime(df['日期'])#設(shè)置繪圖參數(shù)plt.figure(figsize=(10,6))#繪制折線圖plt.plot(df['日期'],df['語(yǔ)文'],label='語(yǔ)文')plt.plot(df['日期'],df['數(shù)學(xué)'],label='數(shù)學(xué)')plt.plot(df['日期'],df['英語(yǔ)'],label='英語(yǔ)')#添加標(biāo)題和標(biāo)簽plt.title('學(xué)生成績(jī)折線圖')plt.xlabel('日期')plt.ylabel('成績(jī)')plt.legend()#顯示圖表plt.show()```解析思路:將日期列轉(zhuǎn)換為日期時(shí)間格式,然后分別繪制語(yǔ)文、數(shù)學(xué)、英語(yǔ)成績(jī)的折線圖,并設(shè)置標(biāo)題、標(biāo)簽和圖例,最后顯示圖表。3.使用散點(diǎn)圖展示語(yǔ)文成績(jī)與數(shù)學(xué)成績(jī)之間的關(guān)系。```python#設(shè)置繪圖參數(shù)plt.figure(figsize=(10,6))#繪制散點(diǎn)圖plt.scatter(df['語(yǔ)文'],df['數(shù)學(xué)'],color='purple')#添加標(biāo)題和標(biāo)簽plt.title('語(yǔ)文與數(shù)學(xué)成績(jī)散點(diǎn)圖')plt.xlabel('語(yǔ)文成績(jī)')plt.ylabel('數(shù)學(xué)成績(jī)')#顯示圖表plt.show()```解析思路:直接繪制語(yǔ)文成績(jī)與數(shù)學(xué)成績(jī)的散點(diǎn)圖,并設(shè)置標(biāo)題和標(biāo)簽,最后顯示圖表。4.使用餅圖展示每位學(xué)生的成績(jī)分布情況。```python#由于每位學(xué)生的成績(jī)不是一個(gè)單一的值,無(wú)法直接繪制餅圖。以下代碼僅供參考。#假設(shè)數(shù)據(jù)中包含每個(gè)科目的成績(jī),需要將每位學(xué)生的成績(jī)進(jìn)行分組#將成績(jī)進(jìn)行分組并計(jì)算占比categories=['語(yǔ)文','數(shù)學(xué)','英語(yǔ)']forcategoryincategories:df[category+'_占比']=df[category]/df[category].sum()#設(shè)置繪圖參數(shù)plt.figure(figsize=(8,8))#繪制餅圖plt.pie(df['語(yǔ)文占比'],labels=df['姓名'],autopct='%1.1f%%',startangle=90)plt.pie(df['數(shù)學(xué)占比'],labels=df['姓名'],autopct='%1.1f%%',startangle=90,colors=['green','blue','red'])#添加標(biāo)題plt.title('學(xué)生成績(jī)分布餅圖')#顯示圖表plt.show()```解析思路:首先將每位學(xué)生的成績(jī)轉(zhuǎn)換為占比,然后分別繪制語(yǔ)文、數(shù)學(xué)成績(jī)的餅圖,并設(shè)置標(biāo)簽和占比顯示格式,最后顯示圖表。5.將以上所有圖表保存為PDF文件。```pythonfrommatplotlib.backends.backend_pdfimportPdfPages#創(chuàng)建一個(gè)PDF文件withPdfPages('student_scores.pdf')aspdf:#保存條形圖plt.figure(figsize=(10,6))plt.bar(df['姓名'],df['語(yǔ)文'],color='blue',label='語(yǔ)文')plt.bar(df['姓名'],df['數(shù)學(xué)'],color='green',bottom=df['語(yǔ)文'],label='數(shù)學(xué)')plt.bar(df['姓名'],df['英語(yǔ)'],color='red',bottom=df['語(yǔ)文']+df['數(shù)學(xué)'],label='英語(yǔ)')plt.title('學(xué)生成績(jī)條形圖')plt.xlabel('學(xué)生姓名')plt.ylabel('成績(jī)')plt.legend()pdf.savefig()plt.close()#保存折線圖(假設(shè)數(shù)據(jù)中包含日期)#...(省略代碼)#保存散點(diǎn)圖#...(省略代碼)#保存餅圖#...(省略代碼)```解析思路:使用`PdfPages`對(duì)象創(chuàng)建一個(gè)PDF文件,然后在一個(gè)with語(yǔ)句中,保存每個(gè)圖表的圖像。首先保存條形圖,然后重復(fù)相同的步驟保存其他圖表,最后關(guān)閉圖像和PDF文件。三、數(shù)據(jù)清洗與處理1.刪除年齡和薪資中存在缺失值的行。```pythondf=df.dropna(subset=['年齡','薪資'])```解析思路:使用`dropna()`方法刪除包含缺失值的行,`subset`參數(shù)指定需要檢查缺失值的列。2.將年齡和薪資列中的異常值替換為該列的平均值。```pythondf['年齡']=df['年齡'].apply(lambdax:df['年齡'].mean()ifx<18orpd.isnull(x)elsex)df['薪資']=df['薪資'].apply(lambdax:df['薪資'].mean()ifx<3000orpd.isnull(x)elsex)```解析思路:使用`apply()`方法對(duì)年齡和薪資列的每個(gè)元素應(yīng)用一個(gè)函數(shù),如果元素小于18歲或薪資低于3000元,或者元素是缺失值,則替換為該列的平均值。3.使用條件表達(dá)式將年齡大于35的員工薪資增加1000元。```pythondf.loc[df['年齡']>35,'薪資']+=1000```解析思路:使用`.loc[]`方法選擇年齡大于35的行,然后對(duì)薪資列的值增加1000元。4.將清洗后的數(shù)據(jù)保存為CSV文件。```pythondf.to_csv('cleaned_data.csv',index=False)```解析思路:使用`to_csv()`方法將DataFrame保存為CSV文件,`index=False`參數(shù)表示不保存行索引。四、數(shù)據(jù)分析與統(tǒng)計(jì)1.計(jì)算每個(gè)產(chǎn)品類別的總銷售額。```pythoncategory_sales=df.groupby('產(chǎn)品類別')['銷售額'].sum()```解析思路:使用`groupby()`方法根據(jù)產(chǎn)品類別對(duì)數(shù)據(jù)進(jìn)行分組,然后對(duì)每個(gè)組中的銷售額進(jìn)行求和。2.計(jì)算銷售額的平均值、中位數(shù)和眾數(shù)。```pythonaverage_sales=df['銷售額'].mean()median_sales=df['銷售額'].median()mode_sales=df['銷售額'].mode()[0]#獲取眾數(shù)列表中的第一個(gè)值```解析思路:分別使用`mean()`、`median()`和`mode()`方法計(jì)算銷售額的平均值、中位數(shù)和眾數(shù)。3.找出銷售額最大的日期。```pythonmax_sales_date=df.loc[df['銷售額'].idxmax()]['日期']```解析思路:使用`idxmax()`方法找到銷售額最大的行索引,然后訪問(wèn)該行索引對(duì)應(yīng)的日期列,得到銷售額最大的日期。4.繪制銷售額隨時(shí)間變化的折線圖。```python#設(shè)置繪圖參數(shù)plt.figure(figsize=(10,6))#繪制折線圖plt.plot(df['日期'],df['銷售額'],marker='o')#添加標(biāo)題和標(biāo)簽plt.title('銷售額隨時(shí)間變化折線圖')plt.xlabel('日期')plt.ylabel('銷售額')#顯示圖表plt.show()```解析思路:首先將日期列轉(zhuǎn)換為日期時(shí)間格式,然后繪制銷售額的折線圖,并設(shè)置標(biāo)題、標(biāo)簽和標(biāo)記,最后顯示圖表。五、數(shù)據(jù)可視化應(yīng)用1.繪制一個(gè)條形圖,展示每個(gè)產(chǎn)品的滿意度評(píng)分。```python#設(shè)置繪圖參數(shù)plt.figure(figsize=(10,6))#繪制條形圖plt.bar(df['產(chǎn)品名稱'],df['滿意度評(píng)分'],color='purple')#添加標(biāo)題和標(biāo)簽plt.title('產(chǎn)品滿意度評(píng)分條形圖')plt.xlabel('產(chǎn)品名稱')plt.ylabel('滿意度評(píng)分')#顯示圖表plt.show()```解析思路:直接繪制產(chǎn)品名稱和滿意度評(píng)分的條形圖,并設(shè)置標(biāo)題、標(biāo)簽和顏色,最后顯示圖表。2.在條形圖的基礎(chǔ)上,添加數(shù)據(jù)標(biāo)簽,顯示每個(gè)產(chǎn)品的具體評(píng)分。```python#設(shè)置繪圖參數(shù)plt.figure(figsize=(10,6))#繪制條形圖bars=plt.bar(df['產(chǎn)品名稱'],df['滿意度評(píng)分'],color='purple')#添加數(shù)據(jù)標(biāo)簽forbarinbars:yval=bar.get_height()plt.text(bar.get_x()+bar.get_width()/2,yval,round(yval,1),va='bottom')#添加標(biāo)題和標(biāo)簽plt.title('產(chǎn)品滿意度評(píng)分條形圖')plt.xlabel('產(chǎn)品名稱')plt.ylabel('滿意度評(píng)分')#顯示圖表plt.show()```解析思路:首先繪制條形圖,然后遍歷每個(gè)條形,獲取其高度,并在條形中心的x坐標(biāo)處添加文本標(biāo)簽,顯示評(píng)分的具體數(shù)值,最后設(shè)置標(biāo)題、標(biāo)簽和顯示圖表。3.調(diào)整圖表的標(biāo)題、標(biāo)簽和顏色,使其更具有吸引力。```python#設(shè)置繪圖參數(shù)plt.figure(figsize=(10,6))#繪制條形圖bars=plt.bar(df['產(chǎn)品名稱'],df['滿意度評(píng)分'],color='skyblue')#添加數(shù)據(jù)標(biāo)簽forbarinbars:yval=bar.get_height()plt.text(bar.get_x()+bar.get_width()
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學(xué)機(jī)械工程(機(jī)械制造理論)試題及答案
- 2025年大學(xué)康復(fù)治療(作業(yè)治療)試題及答案
- 2025年中職應(yīng)用保加利亞語(yǔ)(日常保語(yǔ)交流)試題及答案
- 2025年中職汽車制造與檢測(cè)(汽車組裝)試題及答案
- 運(yùn)動(dòng)場(chǎng)監(jiān)理規(guī)劃
- 傳染病消毒隔離管理制度
- 工行業(yè)務(wù)培訓(xùn)課件
- 2026年港口視頻監(jiān)控員面試含答案
- 2026年緊急集合攜帶物資與時(shí)限要求試題含答案
- 2026年延長(zhǎng)石油油藏工程考試復(fù)習(xí)題含答案
- 2025-2026學(xué)年總務(wù)主任年度述職報(bào)告
- 2026屆北京東城55中高一數(shù)學(xué)第一學(xué)期期末質(zhì)量檢測(cè)試題含解析
- 2026年遼寧醫(yī)藥職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試參考題庫(kù)附答案詳解
- 2026年湖南大眾傳媒職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)考試備考試題附答案詳解
- 醫(yī)療AI輔助治療決策支持
- 穴位貼敷的運(yùn)用課件
- 2026《初中英語(yǔ)?優(yōu)翼學(xué)練優(yōu)》八上早讀本
- 金瓶梅課件教學(xué)
- 創(chuàng)新創(chuàng)業(yè)教育學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 《最奇妙的蛋》完整版
- 三年級(jí)科學(xué)上冊(cè)蘇教版教學(xué)工作總結(jié)共3篇(蘇教版三年級(jí)科學(xué)上冊(cè)知識(shí)點(diǎn)整理)
評(píng)論
0/150
提交評(píng)論