版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第4章課時(shí)15pandas處理數(shù)據(jù)信息技術(shù)課標(biāo)梳理·微知著教材重點(diǎn)課標(biāo)要求學(xué)業(yè)質(zhì)量水平pandas數(shù)據(jù)處理1.掌握Series數(shù)據(jù)結(jié)構(gòu)、DataFrame數(shù)據(jù)結(jié)構(gòu)和DataFrame常用函數(shù)2.能利用軟件工具或平臺(tái)準(zhǔn)確而有序地對(duì)數(shù)據(jù)進(jìn)行整理、組織、計(jì)算與呈現(xiàn)2-2教材研析·固基礎(chǔ)1
Python進(jìn)行數(shù)據(jù)處理時(shí)常用的擴(kuò)展模塊1.numpy:科學(xué)計(jì)算(隨機(jī)數(shù)、數(shù)組運(yùn)算等)2.scipy:基于numpy構(gòu)建。增強(qiáng)了高等數(shù)學(xué)、信號(hào)處理、圖像處理、統(tǒng)計(jì)等處理能力。3.matpoltlib:繪圖庫4.pandas:基于numpy實(shí)現(xiàn),主要用于數(shù)據(jù)的處理和分析。(1)Pandas提供了Series和DataFrame兩種數(shù)據(jù)結(jié)構(gòu)完成數(shù)據(jù)的整理、計(jì)算、統(tǒng)計(jì)、分析及簡單可視化。(2)導(dǎo)入pandas模塊:importpandasaspd(導(dǎo)入pandas模塊,pd為別名)典例1下列擴(kuò)展模塊中用于數(shù)據(jù)處理和分析的是()A.Numpy
B.scipyC.matpoltlib
D.pandasD2SeriesSeries是一種一維數(shù)組的數(shù)據(jù)結(jié)構(gòu),由一個(gè)數(shù)組的數(shù)據(jù)和一個(gè)與數(shù)據(jù)關(guān)聯(lián)的索引(index),索引值默認(rèn)是從0起遞增的整數(shù)。屬性說明indexSeries的下標(biāo)索引,其值默認(rèn)是從0起遞增的整數(shù)values存放Series值的一個(gè)數(shù)組①輸入數(shù)據(jù)及輸出
代碼結(jié)果importpandasaspd#導(dǎo)入pandas庫,別名為pds1=pd.Series([166,178,180])print(s1)0________1661________1782________180s2=pd.Series([166,178,180],index=['s01','s02','s03'])print(s2)s01________166s02________178s03________180dtype:int64s2=pd.Series([166,178,180],\index=['s01','s02','s03'])print(s2.values)foriins2.index:print(i)[166178180]s01s02s03#輸出具體索引號(hào)需要通過循環(huán)輸出②修改數(shù)據(jù)
s2=pd.Series([166,178,\180],index=['s01','s02','s03'])s2[1]=188s2['s03']=222print(s2.values)[166188222]#可通過默認(rèn)索引號(hào)或指定索引號(hào)修改其數(shù)據(jù)值典例2編寫Python小程序建立字典存儲(chǔ)如圖所示Excel中的選手?jǐn)?shù)據(jù);并利用字典生成pandas的Series對(duì)象;輸出Series對(duì)象,并自動(dòng)進(jìn)入修改選手年齡的狀態(tài)(輸入選手的姓名、新的年齡值),當(dāng)輸入為0時(shí),退出修改狀態(tài);然后輸出年齡審核通過(不超過15歲)的選手名單。程序運(yùn)行界面和代碼如下,請(qǐng)?jiān)趧澗€處填上合適的代碼。importpandasaspddic={'姚佳云':15,'莊怡婷':16,'孫雁\婷':17,'馬能':16,'謝震宇':16,'傅懌成':\17,'沈雯雯':15,'王婧':16}inf=①_________________print(inf)whileTrue:xm=input('請(qǐng)輸入需要修改年齡\的人名:') if②_______________:
break
nl=int(input('請(qǐng)輸入需要修改的\年齡值:'))③_________________pd.Series(dic)xm=='0'inf[xm]=nl
print(inf)ans=''foriininf.index:if④__________________:
ans=ans+''+iprint('通過年齡審核的選手是:',ans)inf[i]<=15解析
①用字典創(chuàng)建一維Series數(shù)據(jù)對(duì)象,參數(shù)為對(duì)象名。②當(dāng)輸入的姓名xm為字符‘0’時(shí),結(jié)束修改狀態(tài)。③修改Series對(duì)象值的格式為:對(duì)象名[index]=新值。④for
i
in
inf.index:說明for遍歷Series對(duì)象inf的索引,i為每次循環(huán)遍歷到的index,與之相應(yīng)的value為inf[i],年齡不能大于15歲。3DataFrame
1.概念DataFrame是一種二維的數(shù)據(jù)結(jié)構(gòu),類似于關(guān)系表的表格型數(shù)據(jù)結(jié)構(gòu),由1個(gè)索引列(index)和若干個(gè)數(shù)據(jù)列組成,每個(gè)數(shù)據(jù)列可以是不同的類型。DataFrame可以看作是共享同一個(gè)index的Series的集合。其中,每列中的元素類型必須一致,而不同的列可以擁有不同的元素類型。創(chuàng)建DataFrame對(duì)象的方法很多,通常用一個(gè)相等長度的列表或字典來創(chuàng)建。2.DataFrame對(duì)象常用屬性屬性說明indexDataFrame的行索引columns存放各列的列標(biāo)題values存放值的二維數(shù)據(jù)T行列轉(zhuǎn)置3.常用函數(shù)
函數(shù)名函數(shù)功能使用方法示例count()返回非空(NaN)數(shù)據(jù)項(xiàng)的數(shù)量df1.count()
每一列非空個(gè)數(shù)df1.count(axis=1)
每一行非空數(shù)df1['姓名'].count()
“姓名”列非空
個(gè)數(shù)sum()求和,通過axis=0/1確定求和軸向(axis=0縱向求和,axis=1橫向求和)df1.sum()
axis默認(rèn)為0,縱向求和df1.sum(axis=1) 橫向求和df1.語文.sum() 僅語文列求和mean()求平均值,通過axis=0/1確定行列用法同上max()返回最大值用法同上min()返回最小值用法同上describe()返回各列的基本描述統(tǒng)計(jì)值,包含非空項(xiàng)數(shù)、平均數(shù)、標(biāo)準(zhǔn)差、最大值、最小值及4分位差df1.describe()df1.語文.describe()head()返回DataFrame前n個(gè)數(shù)據(jù)記錄(若不設(shè)置n,則默認(rèn)返回前5行)df1.head(2)
返回前2行df1.head()
返回前5行tail()返回DataFrame后n個(gè)數(shù)據(jù)記錄df1.tail(2)
返回后2行df1.tail()
返回后5行g(shù)roupby()對(duì)各列或各行中的數(shù)據(jù)進(jìn)行分組,然后可對(duì)其中每一組數(shù)據(jù)進(jìn)行不同的操作df1.groupby(″性別″)按性別分類df1.groupby(″性別″).mean()按性別求平均值sort_values()排序,通過axis=0/1確定行列,默認(rèn)為0(列)通過ascending=True/False設(shè)置升序還是降序,默認(rèn)為True(升序)df1.sort_values(″語文″,ascending=False)按語文成績降序排序drop()刪除數(shù)據(jù),通過axis=0/1確定行列,默認(rèn)為0(行)注意:不改變?cè)袑?duì)象的數(shù)據(jù)df2=df1.drop(2)刪除第3行df3=df1.drop(″性別″,axis=1)刪除“性別”列append()在指定對(duì)象的結(jié)尾插入內(nèi)容注意:不改變?cè)袑?duì)象的數(shù)據(jù)data1={'姓名':'李二','性別':'男','語文':143,'數(shù)學(xué)':133,'英語':136}df5=df1.append(data1,ignore_index=True)在結(jié)尾增加一行數(shù)據(jù)insert()在指定位置插入列注意:改變?cè)袑?duì)象的數(shù)據(jù)df1.insert(loc=0,column='出生年份',value=[2003,2002,2001,2002])在第一列插入“出生年份”列rename()修改列名或者索引注意:不改變?cè)袑?duì)象的數(shù)據(jù)df5=df1.rename(columns={″姓名″:″您的姓名″,″性別″:″您的性別″})
改變列名df6=df1.rename(index={0:″a″,1:″b″})改變索引名4.主要操作①創(chuàng)建DataFrame對(duì)象方法1,使用相等長度列表的字典構(gòu)建一個(gè)DataFrame對(duì)象。方法2,直接讀取二維數(shù)據(jù)文件創(chuàng)建DataFrame對(duì)象。pd.read_csv(filename)#從CSV文件導(dǎo)入數(shù)據(jù)pd.read_excel(filename)#從Excel文件導(dǎo)入數(shù)據(jù)df.to_csv(filename)#導(dǎo)出數(shù)據(jù)到CSV文件df.to_excel(filename)#導(dǎo)出數(shù)據(jù)到Excel文件②查看DataFrame數(shù)據(jù)屬性
③查看DataFrame常用方法
④axis(軸說明)及行列操作
⑤分組計(jì)算
典例3(2023浙江7月學(xué)考)某省2022年全年氣象災(zāi)害預(yù)警數(shù)據(jù)保存在文件“qxyj.xlsx”中,部分?jǐn)?shù)據(jù)如圖所示,編寫Python程序,統(tǒng)計(jì)全年發(fā)布次數(shù)最多的5種氣象預(yù)警。importpandasaspddf=pd.read_excel(″qxyj.xlsx″)
#讀文件中的數(shù)據(jù)df=df.drop([″預(yù)警發(fā)布單位″,″預(yù)警等\級(jí)″,″預(yù)警發(fā)布時(shí)間″],axis=1)
#刪除列________________print(df_s[0:5])方框中代碼由下列語句中的部分語句組成:①df_g=df.groupby(″預(yù)警名稱″,as_index=False).sum()
#分組求和②df_g=df_s.groupby(″次數(shù)″,as_index=False).sum()③df_s=df.sort_values(″次數(shù)″,ascending=True)
#升序排序④df_s=df_g.sort_values(″次數(shù)″,ascending=False)要實(shí)現(xiàn)上述功能,下列選項(xiàng)中正確的是()A.①④ B.①③
C.②④ D.③②A解析
本題考查Pandas數(shù)據(jù)處理知識(shí)。根據(jù)題意,要求統(tǒng)計(jì)全年發(fā)布次數(shù)最多的5種氣象預(yù)警,因此在使用分組函數(shù)groupby()時(shí),分組的依據(jù)肯定是“預(yù)警名稱”,而不是“次數(shù)”,故在①②中選擇①。從代碼print(df_s[0:5])可知,輸出的是最前面的五條記錄,從而可以判斷數(shù)據(jù)是按照“次數(shù)”降序排序的,sort_values函數(shù)的參數(shù)ascending=False表示降序,故在③④中選擇④。故選A。典例4某DataFrame對(duì)象df,包含“商品編碼”“銷售價(jià)格”“銷售日期”等數(shù)據(jù)列。下列語句中,能將df對(duì)象中的數(shù)據(jù)以“商品編碼”為關(guān)鍵字降序排序的是()A.df.sort_index(axis=1,ascending=True)B.df.sort_values('商品編碼',ascending=False)C.df.sort_values('商品編碼',ascending=True,inplace=True)D.df.sort_values('商品編碼',ascending=False,inplace=True)解析
分析題目,發(fā)現(xiàn)解決問題的關(guān)鍵在于將df對(duì)象中的數(shù)據(jù)按“商品編碼”從大到小排列。df對(duì)象中的數(shù)據(jù)采用DataFrame結(jié)構(gòu)組織,因此可以使用sort_values()函數(shù)按“商品編碼”降序排列df對(duì)象中的數(shù)據(jù)。參數(shù)ascending=False為降序,inplace=True排序結(jié)果替換df中數(shù)據(jù),因此本題答案為D。D典例5小藍(lán)利用Excel收集了某次足球比賽各國球隊(duì)相關(guān)數(shù)據(jù),并保存為“足球賽.xlsx”文件,如圖a所示。然后他利用pandas模塊進(jìn)行數(shù)據(jù)處理,分析小組賽中各支球隊(duì)的表現(xiàn)。(提示:該比賽共分成8個(gè)小組,每個(gè)小組4支球隊(duì),組內(nèi)各隊(duì)之間進(jìn)行一場(chǎng)比賽,每支球隊(duì)共比賽3場(chǎng))圖a(1)(多選題)小藍(lán)在處理數(shù)據(jù)前,首先進(jìn)行了數(shù)據(jù)整理,則下列步驟正確的是()(注:全部選對(duì)的得2分,選對(duì)但不全的得1分,不選或錯(cuò)選的得0分)A.E4單元格中的數(shù)據(jù)存在邏輯錯(cuò)誤,需要改成3B.第7行和第8行兩行數(shù)據(jù)重復(fù),直接刪除其中一行即可C.英格蘭隊(duì)的所在行存在數(shù)據(jù)缺失,故無法確定具體數(shù)值D.阿根廷所在小組的組別格式不一致,應(yīng)當(dāng)將其改成CAD(2)小藍(lán)利用pandas模塊處理圖a中的表格數(shù)據(jù),其中部分Python程序代碼如下。在處理數(shù)據(jù)的過程中,小藍(lán)提出了以下三項(xiàng)要求。請(qǐng)根據(jù)他的要求在劃線處填入合適的代碼。①首先計(jì)算各球隊(duì)的小組賽積分。積分計(jì)算規(guī)則為:勝一場(chǎng)得3分,平局得1分,負(fù)一場(chǎng)得0分。②然后對(duì)各球隊(duì)進(jìn)行小組排名。小組排名規(guī)則為:按積分降序排序。③最后統(tǒng)計(jì)各小組的平均進(jìn)球數(shù),并繪制成如圖b所示的圖表。圖bimportpandasaspdimportmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=\
['SimSun']#設(shè)置字體為宋體df=pd.read_excel('足球賽.xlsx')df['積分']=①____________________________dfrank=df.sort_values(②_________,\ascending=False)
print(dfrank)df2=df.groupby(″組別″).mean()plt.bar(③________________________,label=″平均\進(jìn)球″)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 銀行貸款合同范例格式
- 炸雞門店轉(zhuǎn)讓合同范例
- 杭州裝飾裝修合同范例
- 閣樓鋼結(jié)構(gòu)合同范例
- 合作服裝賠償合同范例
- 中藥袋購銷合同范例
- lowe玻璃采購合同范例
- 國際epc合同范例
- 散熱器合同范例
- 農(nóng)場(chǎng)流轉(zhuǎn)土地合同范例
- 網(wǎng)上外賣系統(tǒng)分析報(bào)告-課程設(shè)計(jì)報(bào)告
- 2024浙江省建筑安全員B證(項(xiàng)目經(jīng)理)考試題庫
- Stevens-Johnson綜合征及中毒性表皮壞死松解癥課件
- 初中數(shù)學(xué)-探索與表達(dá)規(guī)律教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
- 中央財(cái)經(jīng)大學(xué)產(chǎn)業(yè)經(jīng)濟(jì)學(xué)
- 設(shè)計(jì)投標(biāo)書范本
- 23所行政管理博士點(diǎn)學(xué)校之一
- SWITCH塞爾達(dá)傳說曠野之息-1.6金手指127項(xiàng)修改使用說明教程
- 自考02313電力系統(tǒng)微型計(jì)算機(jī)繼電保護(hù)歷年(12-19)真題試卷
- 馬克思主義基本原理智慧樹知到答案章節(jié)測(cè)試2023年重慶工商大學(xué)
- 2023年電動(dòng)力學(xué)復(fù)習(xí)題庫更新版
評(píng)論
0/150
提交評(píng)論