2025年P(guān)ython二級考試專項(xiàng)訓(xùn)練試卷Python大數(shù)據(jù)處理技巧_第1頁
2025年P(guān)ython二級考試專項(xiàng)訓(xùn)練試卷Python大數(shù)據(jù)處理技巧_第2頁
2025年P(guān)ython二級考試專項(xiàng)訓(xùn)練試卷Python大數(shù)據(jù)處理技巧_第3頁
2025年P(guān)ython二級考試專項(xiàng)訓(xùn)練試卷Python大數(shù)據(jù)處理技巧_第4頁
2025年P(guān)ython二級考試專項(xiàng)訓(xùn)練試卷Python大數(shù)據(jù)處理技巧_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2025年P(guān)ython二級考試專項(xiàng)訓(xùn)練試卷,Python大數(shù)據(jù)處理技巧考試時(shí)間:______分鐘總分:______分姓名:______一、選擇題(每題2分,共20分)1.在處理大規(guī)模數(shù)據(jù)集時(shí),為了節(jié)省內(nèi)存,讀取CSV文件推薦使用Pandas的哪個(gè)參數(shù)?A.`low_memory`B.`high_memory`C.`usecols`D.`dtype`2.下列哪個(gè)Pandas對象是單維的,類似于NumPy的一維數(shù)組?A.`DataFrame`B.`Series`C.`Index`D.`Array`3.使用Pandas的`sort_values()`函數(shù)對DataFrame排序時(shí),若要忽略行索引的重復(fù)項(xiàng)進(jìn)行排序,應(yīng)設(shè)置哪個(gè)參數(shù)?A.`ignore_index=True`B.`ascending=False`C.`by='column_name'`D.`kind='mergesort'`4.當(dāng)Pandas`DataFrame`中存在缺失值(`NaN`)時(shí),使用`mean()`函數(shù)計(jì)算列均值,其默認(rèn)行為是?A.忽略所有缺失值,計(jì)算其余非缺失值的均值B.計(jì)算包含缺失值的所有值的均值C.報(bào)錯,無法計(jì)算D.將缺失值視為0進(jìn)行計(jì)算5.下列哪個(gè)Pandas函數(shù)用于計(jì)算分組后的聚合統(tǒng)計(jì)(如求和、計(jì)數(shù)、平均值等)?A.`merge()`B.`groupby()`C.`aggregate()`D.`pivot_table()`6.在Pandas中,使用`loc[]`和`iloc[]`進(jìn)行數(shù)據(jù)選擇的主要區(qū)別在于?A.`loc[]`只能選擇行,`iloc[]`只能選擇列B.`loc[]`基于標(biāo)簽索引,`iloc[]`基于整數(shù)位置索引C.`loc[]`速度比`iloc[]`快D.兩者沒有本質(zhì)區(qū)別,效果相同7.對于一個(gè)數(shù)值型Pandas`Series`,要計(jì)算其元素的標(biāo)準(zhǔn)差,應(yīng)使用哪個(gè)函數(shù)?A.`sum()`B.`mean()`C.`std()`D.`var()`8.讀取Excel文件時(shí),若要指定讀取特定的Sheet,應(yīng)使用Pandas的哪個(gè)參數(shù)?A.`sheet_name`B.`sheet`C.`table_name`D.`index_sheet`9.下列哪個(gè)不是Pandas`DataFrame`的合并操作?A.`concat()`B.`merge()`C.`join()`D.`append()`10.在Pandas中,要創(chuàng)建一個(gè)范圍從0到99(不含100),步長為5的`Series`,應(yīng)使用哪個(gè)函數(shù)?A.`range()`B.`arange()`C.`linspace()`D.`logspace()`二、填空題(每空2分,共20分)1.在Pandas中,表示缺失數(shù)據(jù)的特殊值是________。2.要篩選出Pandas`DataFrame`中某一列值大于10的所有行,可以使用布爾索引,例如`df[df['column_name']>10]`,這里的`df`是DataFrame的名稱,`'column_name'`是列名,`>`是比較運(yùn)算符,`[...]`是________。3.當(dāng)使用Pandas處理非常大的CSV文件,內(nèi)存不足時(shí),可以結(jié)合`pandas.read_csv()`函數(shù)的________參數(shù)分塊讀取數(shù)據(jù)。4.Pandas的`DataFrame`可以通過行索引和列索引的方式訪問數(shù)據(jù),這種索引方式稱為________。5.若要給Pandas`DataFrame`中的所有列重命名,可以使用`rename()`函數(shù),并傳入一個(gè)字典,字典的鍵是________,值是新的列名。6.對于Pandas`Series``s`,要對其所有元素進(jìn)行平方運(yùn)算,可以使用`s.apply()`函數(shù)傳入一個(gè)匿名函數(shù)`lambdax:x2`,這里的`lambdax:`定義了一個(gè)________。7.在進(jìn)行數(shù)據(jù)分組(`groupby`)后,若想計(jì)算每個(gè)組的大小(即組的元素?cái)?shù)量),可以使用`size()`或`count()`方法。8.Pandas`DataFrame`的`at[]`和`iat[]`用于訪問單個(gè)元素,`at[]`用于訪問________中的元素,而`iat[]`用于訪問________中的元素。9.若要將Pandas`DataFrame`保存為CSV文件,應(yīng)使用其`to_csv()`方法,若想不包含行索引,可以設(shè)置參數(shù)________為`False`。10.使用`numpy.arange()`函數(shù)創(chuàng)建一個(gè)NumPy數(shù)組時(shí),可以指定第三個(gè)參數(shù)表示________。三、代碼編寫題(共30分)1.(10分)編寫Python代碼,使用Pandas完成以下任務(wù):a.創(chuàng)建一個(gè)包含兩列數(shù)據(jù)的`DataFrame`,列名分別為`'Name'`和`'Age'`。數(shù)據(jù)如下:|Name|Age||---------|-----||Alice|25||Bob|30||Charlie|35|b.為`DataFrame`添加一列`'Gender'`,其值根據(jù)`'Name'`列的名稱決定:如果名字是"Alice",則`Gender`為"Female";否則為"Male"。c.篩選出年齡大于等于30歲的所有行,并將結(jié)果存儲到一個(gè)新的`DataFrame`中。2.(10分)編寫Python代碼,使用Pandas處理以下問題:假設(shè)已有一個(gè)名為`data.csv`的CSV文件,其中包含列`'Date'`(日期)、`'Sales'`(銷售額)和`'Category'`(商品類別)。請編寫代碼完成:a.讀取`data.csv`文件到Pandas`DataFrame``df`中。b.將`'Date'`列的數(shù)據(jù)類型轉(zhuǎn)換為Pandas的`datetime`類型。c.計(jì)算每個(gè)`'Category'`下的總銷售額,并將結(jié)果按總銷售額從高到低排序,輸出排序后的結(jié)果。3.(10分)編寫Python代碼,使用Pandas完成以下任務(wù):假設(shè)有兩個(gè)`DataFrame`,`df1`和`df2`:```pythonimportpandasaspddata1={'Key':['A','B','C','D'],'Value1':[1,2,3,4]}df1=pd.DataFrame(data1)data2={'Key':['B','D','E','F'],'Value2':[5,6,7,8]}df2=pd.DataFrame(data2)```a.使用`merge()`函數(shù)將`df1`和`df2`根據(jù)`'Key'`列進(jìn)行內(nèi)連接(innerjoin),結(jié)果命名為`df_merged`。b.在`df_merged`的基礎(chǔ)上,添加一列`'Sum'`,其值為`'Value1'`和`'Value2'`列的和。c.將`df_merged`中`'Key'`為`'B'`的行刪除,并將結(jié)果輸出。四、分析題(共30分)1.(15分)假設(shè)有一個(gè)Pandas`DataFrame``df`,包含`'A'`,`'B'`,`'C'`三列,數(shù)據(jù)如下:```pythonimportpandasaspddata={'A':[1,2,2,3,4],'B':[5,5,6,7,8],'C':[9,10,11,12,13]}df=pd.DataFrame(data)```請分析以下兩種處理數(shù)據(jù)的代碼片段,分別說明它們的執(zhí)行結(jié)果是什么,并簡要比較哪種方式在處理大型數(shù)據(jù)集時(shí)可能更有效率?(無需實(shí)際運(yùn)行代碼)片段1:```pythonresult1=df.drop_duplicates(subset=['A','B'])print(result1)```片段2:```pythonresult2=df.groupby(['A','B']).first().reset_index()print(result2)```2.(15分)在使用Pandas進(jìn)行數(shù)據(jù)清洗時(shí),處理缺失值(`NaN`)是非常重要的一個(gè)環(huán)節(jié)。請分析以下兩種處理缺失值的策略,并討論各自的優(yōu)缺點(diǎn):a.策略一:使用`fillna()`函數(shù),將所有缺失值填充為一個(gè)特定的常數(shù)(例如0,或某列的平均值)。b.策略二:使用`dropna()`函數(shù),直接刪除包含缺失值的行或列。---試卷答案一、選擇題1.A解析:`low_memory=True`參數(shù)會減少內(nèi)存消耗,適用于讀取大型CSV文件,因?yàn)樗鼤謮K讀取并處理數(shù)據(jù),而不是一次性加載整個(gè)文件。2.B解析:`Series`是Pandas中最基本的數(shù)據(jù)結(jié)構(gòu),它是單維的,在許多方面與NumPy的一維數(shù)組(`ndarray`)類似。3.A解析:`sort_values(by='column_name',ignore_index=True)`會根據(jù)指定列排序,并且忽略原有的行索引,重新生成一個(gè)從0開始的整數(shù)索引。4.A解析:Pandas的統(tǒng)計(jì)函數(shù)(如`mean()`)默認(rèn)會忽略`NaN`值進(jìn)行計(jì)算。如果計(jì)算區(qū)域包含`NaN`,結(jié)果將基于非`NaN`的值。5.B解析:`groupby()`函數(shù)用于對數(shù)據(jù)進(jìn)行分組,它是后續(xù)聚合操作(如`sum()`,`mean()`,`count()`等)的基礎(chǔ)。`aggregate()`可以在`groupby()`后使用,用于定義聚合策略。6.B解析:`loc[]`基于標(biāo)簽(行索引和列名)進(jìn)行選擇,而`iloc[]`基于整數(shù)位置(行號和列號)進(jìn)行選擇。7.C解析:`std()`函數(shù)用于計(jì)算Pandas對象(如`Series`)的標(biāo)準(zhǔn)差。`sum()`計(jì)算總和,`mean()`計(jì)算平均值,`var()`計(jì)算方差。8.A解析:`pandas.read_excel()`函數(shù)的`sheet_name`參數(shù)用于指定要讀取的工作表(Sheet)名稱或索引(整數(shù))。9.D解析:`append()`函數(shù)通常用于將一個(gè)DataFrame或Series添加到另一個(gè)DataFrame的末尾,它不產(chǎn)生新的函數(shù),而是修改調(diào)用者。`concat()`,`merge()`,`join()`都是標(biāo)準(zhǔn)的合并操作函數(shù)。10.B解析:`numpy.arange(start,stop,step)`用于生成一個(gè)從`start`(包含)到`stop`(不包含)的數(shù)組,以`step`為步長。符合題意要求。二、填空題1.NaN解析:在Pandas中,`NaN`(NotaNumber)是用于表示浮點(diǎn)數(shù)缺失值的特殊標(biāo)記。2.布爾索引解析:`[...]`是Python中的列表推導(dǎo)式或索引操作符,在這里用于根據(jù)布爾條件(`df['column_name']>10`)篩選出滿足條件的行。3.chunksize解析:`chunksize`參數(shù)指定了每次讀取的行數(shù),將大型文件分塊讀取有助于控制內(nèi)存使用。4.多級索引解析:Pandas的`DataFrame`和`Series`都支持通過行索引和列索引(或稱軸索引)來訪問數(shù)據(jù),這種使用多個(gè)索引層次的結(jié)構(gòu)稱為多級索引(MultiIndex)。5.字典的鍵解析:`rename(columns=dict)`中的`dict`是一個(gè)字典,其鍵是原列名,值是新列名。6.匿名函數(shù)解析:`lambdax:x2`是一個(gè)沒有名字的函數(shù)(匿名函數(shù)),它接受一個(gè)參數(shù)`x`并返回`x`的平方。7.分組解析:`size()`或`count()`通常在`groupby()`操作之后使用,以統(tǒng)計(jì)每個(gè)分組中的元素?cái)?shù)量。8.Name(或列名)/字典解析:`at[]`用于訪問基于標(biāo)簽的DataFrame的標(biāo)量值(單個(gè)元素),其參數(shù)是`(row_label,column_label)`。`iat[]`用于訪問基于位置的DataFrame的標(biāo)量值,其參數(shù)是`(row_index,column_index)`。9.index解析:`df.to_csv('filename.csv',index=False)`中的`index=False`參數(shù)表示在將DataFrame保存為CSV文件時(shí)不包含行索引。10.步長解析:`numpy.arange(start,stop,step)`中的`step`參數(shù)指定了數(shù)列元素的間隔或步長。三、代碼編寫題1.```pythonimportpandasaspd#a.創(chuàng)建DataFramedata={'Name':['Alice','Bob','Charlie'],'Age':[25,30,35]}df=pd.DataFrame(data)#b.添加'Gender'列df['Gender']=df['Name'].apply(lambdaname:'Female'ifname=='Alice'else'Male')#c.篩選Age>=30的行df_filtered=df[df['Age']>=30]```解析思路:a.使用字典和`pd.DataFrame()`創(chuàng)建包含兩列的DataFrame。b.使用`apply()`方法結(jié)合匿名函數(shù)(`lambda`),根據(jù)`'Name'`列的值判斷并填充`'Gender'`列。c.使用布爾索引`df['Age']>=30`篩選出滿足條件的行,結(jié)果賦值給新的DataFrame`df_filtered`。2.```pythonimportpandasaspd#假設(shè)data.csv文件已存在#a.讀取CSV文件df=pd.read_csv('data.csv')#b.將'Date'列轉(zhuǎn)換為datetime類型df['Date']=pd.to_datetime(df['Date'])#c.按每個(gè)'Category'的總銷售額排序category_sales=df.groupby('Category')['Sales'].sum().reset_index()category_sales_sorted=category_sales.sort_values(by='Sales',ascending=False)#輸出排序結(jié)果print(category_sales_sorted)```解析思路:a.使用`pd.read_csv()`讀取文件到DataFrame`df`。b.使用`pd.to_datetime()`函數(shù)將`'Date'`列的數(shù)據(jù)轉(zhuǎn)換為Pandas的`datetime`類型,便于后續(xù)時(shí)間相關(guān)操作。c.使用`groupby('Category')`對`'Category'`進(jìn)行分組,然后選擇`'Sales'`列并調(diào)用`sum()`計(jì)算每個(gè)組內(nèi)的總和。`reset_index()`將分組結(jié)果轉(zhuǎn)換為新的DataFrame。最后使用`sort_values()`按總銷售額(`'Sales'`列)進(jìn)行降序(`ascending=False`)排序。3.```pythonimportpandasaspd#已提供的數(shù)據(jù)data1={'Key':['A','B','C','D'],'Value1':[1,2,3,4]}df1=pd.DataFrame(data1)data2={'Key':['B','D','E','F'],'Value2':[5,6,7,8]}df2=pd.DataFrame(data2)#a.內(nèi)連接合并df_merged=pd.merge(df1,df2,on='Key',how='inner')#b.添加'Sum'列df_merged['Sum']=df_merged['Value1']+df_merged['Value2']#c.刪除'Key'為'B'的行df_final=df_merged.drop(df_merged[df_merged['Key']=='B'].index)#輸出結(jié)果print(df_final)```解析思路:a.使用`pd.merge()`函數(shù)將`df1`和`df2`根據(jù)`'Key'`列進(jìn)行內(nèi)連接(`how='inner'`表示只保留兩個(gè)DataFrame都有的`'Key'`對應(yīng)的行)。b.使用算術(shù)運(yùn)算`df_merged['Value1']+df_merged['Value2']`直接在合并后的DataFrame中添加新列`'Sum'`。c.先通過布爾索引`df_merged[df_merged['Key']=='B']`找到所有`'Key'`為`'B'`的行,然后獲取這些行的索引,最后使用`drop()`函數(shù)根據(jù)這些索引刪除對應(yīng)的行。四、分析題1.解析:片段1執(zhí)行結(jié)果:```pythonABC015912510226113371244813```(刪除了第二行,因?yàn)閌'A'`和`'B'`的組合`(2,5)`與第一行`(1,5)`重復(fù))片段2執(zhí)行結(jié)果:```pythonABC015912510226113371244813``

溫馨提示

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

評論

0/150

提交評論