2025年P(guān)ython數(shù)據(jù)分析項目卷_第1頁
2025年P(guān)ython數(shù)據(jù)分析項目卷_第2頁
2025年P(guān)ython數(shù)據(jù)分析項目卷_第3頁
2025年P(guān)ython數(shù)據(jù)分析項目卷_第4頁
2025年P(guān)ython數(shù)據(jù)分析項目卷_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

2025年P(guān)ython數(shù)據(jù)分析項目卷考試時間:______分鐘總分:______分姓名:______一、數(shù)據(jù)采集1.請使用Python編寫一個爬蟲程序,從指定的新聞網(wǎng)站(例如:/)抓取首頁的新聞標題和鏈接。要求使用`requests`庫獲取網(wǎng)頁內(nèi)容,并使用`BeautifulSoup`庫解析HTML,提取所需信息。假設新聞標題位于`<a>`標簽的`title`屬性中,新聞鏈接位于`<a>`標簽的`href`屬性中。2.假設有一個提供天氣數(shù)據(jù)的API,其URL為`/data`,需要API密鑰`your_api_key`。請編寫Python代碼,調(diào)用該API獲取指定城市(例如:"Beijing")的當前溫度和天氣狀況描述。要求使用`requests`庫發(fā)送GET請求,并在請求參數(shù)中包含必要的API密鑰和城市名稱。二、數(shù)據(jù)清洗3.假設你有一個包含學生成績的CSV文件`grades.csv`,其中包含列:`StudentID`,`Subject`,`Score`。請使用Python的`pandas`庫讀取該文件,并處理以下問題:a.刪除包含缺失值(`NaN`)的行。b.將`Score`列的數(shù)據(jù)類型轉(zhuǎn)換為浮點型。c.找出`Score`列中超過100的異常值,并將其替換為該學生所在科目的平均分。d.為數(shù)據(jù)框添加一個新列`Pass/Fail`,如果`Score`大于等于60,則值為`Pass`,否則為`Fail`。三、數(shù)據(jù)分析4.繼續(xù)使用上一題中的`grades.csv`數(shù)據(jù)框。請使用`pandas`庫進行以下分析:a.計算每個科目的平均分。b.找出成績最高的3名學生,并顯示他們的`StudentID`、`Subject`和`Score`。c.使用`groupby`功能,按`Subject`分組,計算每個科目的及格率(通過人數(shù)/總?cè)藬?shù))。d.假設新增一列`GradeLevel`,其值根據(jù)`Score`分為三個等級:`A`(90分及以上)、`B`(60分至89分)、`C`(60分以下)。計算每個等級的學生人數(shù)。四、數(shù)據(jù)可視化5.基于上一題的分析結(jié)果,請使用`matplotlib`庫或`seaborn`庫完成以下可視化任務:a.繪制一個條形圖,展示每個科目的平均分。b.繪制一個餅圖,展示不同`GradeLevel`(A、B、C)的學生人數(shù)占比。c.繪制一個散點圖,橫軸為學生的`Score`,縱軸為`GradeLevel`,并使用不同的顏色區(qū)分不同的`GradeLevel`。試卷答案一、數(shù)據(jù)采集1.```pythonimportrequestsfrombs4importBeautifulSoupurl='/'headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/58.0.3029.110Safari/537.3'}response=requests.get(url,headers=headers)soup=BeautifulSoup(response.text,'html.parser')news_list=[]fora_taginsoup.find_all('a',title=True):title=a_tag.get('title')link=a_tag.get('href')iftitleandlink:news_list.append({'title':title,'link':link})#news_list包含了所有找到的新聞標題和鏈接```2.```pythonimportrequestsapi_key='your_api_key'city='Beijing'url=f'/data?city={city}&appid={api_key}'response=requests.get(url)data=response.json()current_temp=data['current']['temp']#假設溫度單位是攝氏度weather_description=data['current']['weather'][0]['description']#current_temp,weather_description包含了當前溫度和天氣狀況描述```二、數(shù)據(jù)清洗3.```pythonimportpandasaspd#讀取CSV文件df=pd.read_csv('grades.csv')#a.刪除包含缺失值的行df=df.dropna()#b.將Score列的數(shù)據(jù)類型轉(zhuǎn)換為浮點型df['Score']=df['Score'].astype(float)#c.找出Score列中超過100的異常值,并替換為該學生所在科目的平均分forindex,rowindf.iterrows():ifrow['Score']>100:subject_avg=df[df['Subject']==row['Subject']]['Score'].mean()df.at[index,'Score']=subject_avg#d.為數(shù)據(jù)框添加一個新列Pass/Faildf['Pass/Fail']=df['Score'].apply(lambdax:'Pass'ifx>=60else'Fail')```三、數(shù)據(jù)分析4.```python#繼續(xù)使用上一題的df數(shù)據(jù)框#a.計算每個科目的平均分subject_avg_scores=df.groupby('Subject')['Score'].mean()#b.找出成績最高的3名學生top_students=df.nlargest(3,'Score')#c.計算每個科目的及格率pass_rates=df.groupby('Subject').apply(lambdax:(x['Pass/Fail']=='Pass').sum()/len(x)).reset_index(name='PassRate')#d.計算每個等級的學生人數(shù)grade_level_counts=df['GradeLevel'].value_counts()```四、數(shù)據(jù)可視化5.```pythonimportmatplotlib.pyplotasplt#或importseabornassns#a.繪制條形圖,展示每個科目的平均分subject_avg_scores.plot(kind='bar')plt.xlabel('Subject')plt.ylabel('AverageScore')plt.title('AverageScorebySubject')plt.show()#b.繪制餅圖,展示不同GradeLevel的學生人數(shù)占比grade_level_counts.plot(kind='pie',autopct='%1.1f%%')plt.title('GradeLevelDistribution')plt.ylabel('')#隱藏y軸標簽plt.show()#c.繪制散點圖,橫軸為Score,縱軸為GradeLevel#首先為不同GradeLevel設置不同顏色color_map={'A':'red','B':'green','C':'blue'}df.plo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論