版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章利用pandas進(jìn)行數(shù)據(jù)預(yù)處理3-1數(shù)據(jù)的創(chuàng)建與操作在實(shí)際的數(shù)據(jù)分析工作中,大部分的時(shí)間是用在數(shù)據(jù)預(yù)處理任務(wù)上,包括數(shù)據(jù)導(dǎo)入、去空去重、新增刪除、格式轉(zhuǎn)換、填充替換、拼接合并等。絕大部分情況下,存儲(chǔ)在數(shù)據(jù)庫或數(shù)據(jù)文件中的數(shù)據(jù),格式與內(nèi)容并不是恰好滿足當(dāng)前的數(shù)據(jù)分析任務(wù),而將數(shù)據(jù)通過各種方式整理得到完全符號(hào)要求的格式,往往需要大量的時(shí)間和精力。Python語言具備簡(jiǎn)介的語法,靈活高效的數(shù)據(jù)結(jié)構(gòu),以及豐富的第三方庫,可以提高數(shù)據(jù)整理的效率。在Python語言豐富的第三方庫中,pandas非常適合做數(shù)據(jù)預(yù)處理的工作。第3章知識(shí)圖譜pandas是Python的一個(gè)數(shù)據(jù)分析包,提供了大量的處理數(shù)據(jù)函數(shù)和方法。Pandas擁有種數(shù)據(jù)結(jié)構(gòu):Series和DataFrame。Series是一種類似一維數(shù)組的數(shù)據(jù)結(jié)構(gòu),由一組數(shù)據(jù)和與之相關(guān)的index組成,這個(gè)結(jié)構(gòu)看似與字典差不多,但還是一定區(qū)別的。字典是一種無序的數(shù)據(jù)結(jié)構(gòu),而Series相當(dāng)于是一種有序字典。DataFrame數(shù)據(jù)結(jié)構(gòu)可以看作是一張二維表,有點(diǎn)類似于Excel表格。DataFrame的最上面一行稱為columns,即各列數(shù)據(jù)的列名。DataFrame的最左面一列和Series一樣稱為index,即每一行的索引。DataFrame每一列與index的組合就是一個(gè)Series,所以也可以把DataFrame看成是同一index的Series集合。1.Series的創(chuàng)建Series的創(chuàng)建有很多方法,可以利用列表、數(shù)組或一維字典進(jìn)行創(chuàng)建。一、Series的創(chuàng)建與操作1.Series的創(chuàng)建(1)利用列表創(chuàng)建Series利用列表創(chuàng)建Series時(shí),列表元素就是Series的值,而Series的索引可以通過index來創(chuàng)建,并且索引的個(gè)數(shù)與值的個(gè)數(shù)要保持一致。利用列表創(chuàng)建Series的一般方法為:pd.Series(list,index)一、Series的創(chuàng)建與操作1.Series的創(chuàng)建(1)利用列表創(chuàng)建Series一、Series的創(chuàng)建與操作示例代碼如下:importpandasaspdlist=[1,2,3]s=pd.Series(list,index=['a','b','c'])print("創(chuàng)建的Series為:\n",s)1.Series的創(chuàng)建(1)利用列表創(chuàng)建Series一、Series的創(chuàng)建與操作1.Series的創(chuàng)建(2)利用一維數(shù)組創(chuàng)建Series利用一維數(shù)組創(chuàng)建Series時(shí),一維數(shù)組的值就是Series的值,而Series的索引可以通過index來創(chuàng)建,并且索引的個(gè)數(shù)與值的個(gè)數(shù)要保持一致。利用一維數(shù)組創(chuàng)建Series的一般方法為:pd.Series(arr,index)一、Series的創(chuàng)建與操作1.Series的創(chuàng)建(2)利用一維數(shù)組創(chuàng)建Series一、Series的創(chuàng)建與操作示例代碼如下:importnumpyasnparr=np.arange(1,4)s=pd.Series(arr,index=['a','b','c'])print("創(chuàng)建的Series為:\n",s)1.Series的創(chuàng)建(2)利用一維數(shù)組創(chuàng)建Series一、Series的創(chuàng)建與操作1.Series的創(chuàng)建(3)利用字典創(chuàng)建Series利用字典也可以創(chuàng)建創(chuàng)建Series,字典的關(guān)鍵字key就是Series的索引index,字典的值value就是Series的值value。利用字典創(chuàng)建Series時(shí),有別于利用列表和一維數(shù)組創(chuàng)建Series,因?yàn)椴挥迷賳为?dú)新建index。利用字典創(chuàng)建Serie的一般方法為:pd.Series(dict)其中,dict表示待轉(zhuǎn)換的字典。一、Series的創(chuàng)建與操作1.Series的創(chuàng)建(3)利用字典創(chuàng)建Series一、Series的創(chuàng)建與操作示例代碼如下:dict={'a':1,'b':2,'c':3}s=pd.Series(dict)print("創(chuàng)建的Series為:\n",s)1.Series的創(chuàng)建(3)利用字典創(chuàng)建Series一、Series的創(chuàng)建與操作2.Series的操作(1)Series的查看在Series中,可以通過head和tail查看數(shù)據(jù)頭部和尾部數(shù)據(jù),head和tail的一般格式為:Series.head(n)Series.tail(n)其中,n表示查看頭部或尾部的n條數(shù)據(jù),n默認(rèn)是5,即不輸入n,就表示查看開頭或結(jié)尾的5條數(shù)據(jù)。一、Series的創(chuàng)建與操作2.Series的操作(1)Series的查看利用len可以查看Series的元素的個(gè)數(shù),len的一般格式為:len(Series)一、Series的創(chuàng)建與操作2.Series的操作(1)Series的查看一、Series的創(chuàng)建與操作示例代碼如下:s=pd.Series(np.random.rand(6),index=['a','b','c','d','e','f'])print("創(chuàng)建的Series為:\n",s)print("s的前5條數(shù)據(jù)為:\n",s.head())print("s的后3條數(shù)據(jù)為:\n",s.tail(3))print("s的長度為:",len(s))2.Series的操作(1)Series的查看一、Series的創(chuàng)建與操作2.Series的操作(2)Series的索引操作①按索引編號(hào)查看數(shù)據(jù)Series可以通過索引編號(hào)查看數(shù)據(jù),索引的編號(hào)方法與列表一樣,也是從0開始的。按索引編號(hào)查看數(shù)據(jù)既可以查看一條數(shù)據(jù),可以查看多條連續(xù)數(shù)據(jù),即切片數(shù)據(jù),切片數(shù)據(jù)類似于切片列表。按索引編號(hào)查看數(shù)據(jù)的一般方法為:Series[index]一、Series的創(chuàng)建與操作2.Series的操作(2)Series的索引操作①按索引編號(hào)查看數(shù)據(jù)按索引編號(hào)查看Series多條不連續(xù)的數(shù)據(jù)時(shí),需要將多個(gè)索引編號(hào)單獨(dú)用放在一個(gè)列表中,按索引編號(hào)查看多條不連續(xù)數(shù)據(jù)的一般方法為:Series[[index1,index2,…]]一、Series的創(chuàng)建與操作2.Series的操作(2)Series的索引操作①按索引編號(hào)查看數(shù)據(jù)按索引編號(hào)還可以查看多條連續(xù)的數(shù)據(jù),即查看切片數(shù)據(jù),查看切片數(shù)據(jù)的一般方法為:Series[index_start:index_stop]其中,index_start和index_stop分別表示切片數(shù)據(jù)第一條和最后一條數(shù)據(jù)的索引編號(hào),并且最后一條數(shù)據(jù)不能取到。一、Series的創(chuàng)建與操作2.Series的操作(2)Series的索引操作①按索引編號(hào)查看數(shù)據(jù)一、Series的創(chuàng)建與操作示例代碼如下:s=pd.Series(np.arange(11,16),index=['a','b','c','d','e'])print("創(chuàng)建的Series為:\n",s)print("索引號(hào)為2對(duì)應(yīng)的數(shù)據(jù)為:",s[2])print("最后1個(gè)索引號(hào)對(duì)應(yīng)的數(shù)據(jù)為:",s[-1])print("索引號(hào)1和3的對(duì)應(yīng)的數(shù)據(jù)為:\n",s[[1,3]])print("索引號(hào)1到索引號(hào)3的切片為:\n",s[1:4])2.Series的操作(2)Series的索引操作一、Series的創(chuàng)建與操作2.Series的操作(2)Series的索引操作②按索引名稱查看數(shù)據(jù)Series除了可以通過索引編號(hào)查看Series某一條數(shù)據(jù),還可以通過索引名稱查看數(shù)據(jù),這一點(diǎn)類似于字典。按索引名稱查看一條數(shù)據(jù)的一般方法為:Series[index_name]一、Series的創(chuàng)建與操作2.Series的操作(2)Series的索引操作②按索引名稱查看數(shù)據(jù)按索引名稱查看Series多條不連續(xù)的數(shù)據(jù)時(shí),需要將多個(gè)索引名稱單獨(dú)用放在一個(gè)列表中,按索引名稱查看多條不連續(xù)數(shù)據(jù)的一般方法為:Series[[index_name1,index_name2,…]]一、Series的創(chuàng)建與操作2.Series的操作(2)Series的索引操作②按索引名稱查看數(shù)據(jù)按索引名稱還可以查看多條連續(xù)的數(shù)據(jù),即查看切片數(shù)據(jù),查看切片數(shù)據(jù)的一般方法為:Series[index_name_start:index_name_stop]其中,index_name_start和index_name_stop分別表示切片數(shù)據(jù)第一條和最后一條數(shù)據(jù)的索引名稱,并且這兩條數(shù)據(jù)都是可以取到的。一、Series的創(chuàng)建與操作2.Series的操作(2)Series的索引操作②按索引名稱查看數(shù)據(jù)一、Series的創(chuàng)建與操作示例代碼如下:print("索引為b對(duì)應(yīng)的數(shù)據(jù)為:\n",s['b'])print("索引為c和e對(duì)應(yīng)的數(shù)據(jù)為:\n",s[['c','e']])print("索引為b到索引d對(duì)應(yīng)的數(shù)據(jù)為:\n",s['b':'d'])2.Series的操作(2)Series的索引操作一、Series的創(chuàng)建與操作2.Series的操作(2)Series的索引操作③重排索引在Series中,可以對(duì)原來的索引進(jìn)行重新排列,重排索引的方法是reindex,reindex的一般格式為:Series.reindex([index_new])其中,index_new表示Series重排索引后的新索引。一、Series的創(chuàng)建與操作2.Series的操作(2)Series的索引操作③重排索引一、Series的創(chuàng)建與操作示例代碼如下:s=s.reindex(['b','a','d','e','c'])print("s重排索引后的結(jié)果為:",s)2.Series的操作(2)Series的索引操作③重排索引一、Series的創(chuàng)建與操作DataFrame與Series的結(jié)構(gòu)相似,也是由索引和數(shù)據(jù)組成的,不同的是,DataFrame的索引不僅有行索引還有列索引。行索引用index來表示,如果沒有傳入行索引,DataFrame會(huì)默認(rèn)自動(dòng)創(chuàng)建一個(gè)從0開始的整數(shù)索引,而列索引用columns表示。行索引位于最左邊一列,而列索引位于最上面一行。Series只有一列數(shù)據(jù),DataFrame可以有多列數(shù)據(jù)。二、DataFrame的創(chuàng)建與操作1.DataFrame的創(chuàng)建創(chuàng)建DataFrame有很多方法,可以利用二維數(shù)組、字典與列表或嵌套字典創(chuàng)建DataFrame。二、DataFrame的創(chuàng)建與操作1.DataFrame的創(chuàng)建(1)利用二維數(shù)組創(chuàng)建DataFrame利用二維數(shù)組創(chuàng)建DataFrame的一般方法為:DataFrame(array,columns,index)二、DataFrame的創(chuàng)建與操作1.DataFrame的創(chuàng)建(2)利用字典與列表創(chuàng)建DataFrame利用字典與列表創(chuàng)建DataFrame的一般方法為:DataFrame({columns_name:[columns_data]},index)其中,columns_name表示列索引,columns_data表示列索引對(duì)應(yīng)的列數(shù)據(jù),一列的數(shù)據(jù)都寫在一個(gè)列表中。index表示行索引。二、DataFrame的創(chuàng)建與操作1.DataFrame的創(chuàng)建(3)利用二維嵌套字典創(chuàng)建DataFrame利用二維嵌套字典創(chuàng)建DataFrame的一般方法為:DataFrame(columns:{index:row_data}其中,columns表示列索引。index表示行索引,row_data表示行索引index對(duì)應(yīng)的行數(shù)據(jù)。二、DataFrame的創(chuàng)建與操作2.DataFrame的操作(1)DataFrame的屬性操作DataFrame的屬性包括形狀(行數(shù)與列數(shù))、元素個(gè)數(shù)、列名、索引名。二、DataFrame的創(chuàng)建與操作屬性作用shape表示DataFrame形狀,shape[0]表示行數(shù),shape[1]表示列數(shù)。size表示DataFrame元素個(gè)數(shù)。columns表示DataFrame列名。index表示DataFrame行索引。dtype表示DataFrame中某列的數(shù)據(jù)類型。2.DataFrame的操作(2)DataFrame的索引操作①重排索引在pandas中,可以對(duì)DataFrame原來的索引重新排列,這一點(diǎn)與Series十分類似,重排索引的方法是reindex,reindex的一般格式為:DataFrame.reindex([index_new])二、DataFrame的創(chuàng)建與操作2.DataFrame的操作(2)DataFrame的索引操作②重設(shè)索引重設(shè)索引是指將自動(dòng)生成編號(hào)的行所索引改為DataFrame中某列,pandas提供了set_index函數(shù)實(shí)現(xiàn)重設(shè)索引。二、DataFrame的創(chuàng)建與操作2.DataFrame的操作(2)DataFrame的索引操作②重設(shè)索引set_index的一般格式為:DataFrame.set_index(column,drop)其中,column表示DataFrame中某一列的列名,即將這一列的值設(shè)為索引index。Drop表示是否要將已經(jīng)設(shè)為索引列的原列刪除,默認(rèn)是True。二、DataFrame的創(chuàng)建與操作2.DataFrame的操作(2)DataFrame的索引操作③還原索引還原索引是指將重設(shè)索引的結(jié)果還原,即將已經(jīng)重設(shè)索引后的index還原為自動(dòng)生成編號(hào)的行索引,pandas提供了reset_index函數(shù)實(shí)現(xiàn)重設(shè)索引,reset_index的一般格式為:DataFrame.reset_index()二、DataFrame的創(chuàng)建與操作2.DataFrame的操作(3)DataFrame的數(shù)據(jù)類型相關(guān)操作①查看數(shù)據(jù)類型在創(chuàng)建DataFrame時(shí),可以通過dtype查看DataFrame中各列數(shù)據(jù)的類型,dtype的一般用法為:DataFrame.dtype二、DataFrame的創(chuàng)建與操作2.DataFrame的操作(3)DataFrame的數(shù)據(jù)類型相關(guān)操作①查看數(shù)據(jù)類型DataFrame中數(shù)據(jù)類型包括:object(字符型)、int(整型)、float(浮點(diǎn)型)、datetime(時(shí)間型)。二、DataFrame的創(chuàng)建與操作2.DataFrame的操作(3)DataFrame的數(shù)據(jù)類型相關(guān)操作②通過astype方法強(qiáng)制轉(zhuǎn)化數(shù)據(jù)類型通過astype方法可以強(qiáng)制轉(zhuǎn)化數(shù)據(jù)類型,這一點(diǎn)在數(shù)據(jù)分析十分有用,因?yàn)槿绻W(wǎng)頁采集的數(shù)據(jù)往往是字符型的數(shù)據(jù),在數(shù)據(jù)預(yù)處理時(shí),就需要將字符型數(shù)據(jù)轉(zhuǎn)化為數(shù)值型數(shù)據(jù),才能進(jìn)行后續(xù)的步驟。二、DataFrame的創(chuàng)建與操作2.DataFrame的操作(3)DataFrame的數(shù)據(jù)類型相關(guān)操作②通過astype方法強(qiáng)制轉(zhuǎn)化數(shù)據(jù)類型astype的一般用法為:DataFrame[column].astype(dtype_new)其中,DataFrame[column]表示DataFrame中的某一列,即將這一列的數(shù)據(jù)類型轉(zhuǎn)為dtype_new。二、DataFrame的創(chuàng)建與操作任務(wù)實(shí)訓(xùn)3-1:利用列表創(chuàng)建Series,Series的值為[1,2,3,4,5],Series的索引為['b','a','d','e','c'],利用重排索引方法將索引改為['a','b','c','d','e'],并輸出Series中索引名稱為“d”之前(包含“d”)的切片數(shù)據(jù)。任務(wù)實(shí)訓(xùn)3-1具體代碼如下:s=pd.Series([1,2,3,4,5],index=['b','a','d','e','c'])s=s.reindex(['a','b','c','d','e'])print(s[:'d'])任務(wù)實(shí)訓(xùn)3-1s[:'d']沒有寫明起始索引的名稱,表示默認(rèn)從頭開始。任務(wù)實(shí)訓(xùn)3-2:用三種不同的方法將數(shù)據(jù)創(chuàng)建為DataFrame。
productsale001手機(jī)1000002電視機(jī)2000003筆記本電腦1500任務(wù)實(shí)訓(xùn)3-2具體代碼如下:array=np.array([['手機(jī)',1000],['電機(jī)機(jī)',2000],['筆記本電腦',1500]])df1=pd.DataFrame(array,columns=['product','sale'],index=
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026四川成都龍泉驛區(qū)洪河愛尚幼兒園招聘教師1人備考題庫含答案詳解(奪分金卷)
- 2026上半年海南事業(yè)單位聯(lián)考省直屬(部門所屬)及中央駐瓊事業(yè)單位招聘?jìng)淇碱}庫及完整答案詳解1套
- 2026在京全國性宗教團(tuán)體應(yīng)屆高校畢業(yè)生招聘16人備考題庫附參考答案詳解(綜合題)
- 2026年食品飲料全國分銷權(quán)合同協(xié)議
- 2026年上半年甘肅省事業(yè)單位聯(lián)考備考題庫啥時(shí)候發(fā)布含答案詳解(新)
- 2026年通信設(shè)備研發(fā)協(xié)議
- 司泵工保密意識(shí)強(qiáng)化考核試卷含答案
- 黑龍江省青岡縣一中2026屆高二上生物期末檢測(cè)模擬試題含解析
- 精進(jìn)與運(yùn)用:小學(xué)英語六年級(jí)下冊(cè)名詞專題深度學(xué)習(xí)方案
- 幻燈機(jī)與投影儀裝配調(diào)試工安全理論知識(shí)考核試卷含答案
- DZ/T 0150-1995銀礦地質(zhì)詳查規(guī)范
- 雜志分揀打包服務(wù)合同4篇
- 春節(jié)園林綠化安全應(yīng)急預(yù)案
- 2025年舟山市專業(yè)技術(shù)人員公需課程-全面落實(shí)國家數(shù)字經(jīng)濟(jì)發(fā)展戰(zhàn)略
- 豐田的生產(chǎn)方式培訓(xùn)
- 2023年福建省能源石化集團(tuán)有限責(zé)任公司社會(huì)招聘筆試真題
- 交通安全不坐黑車
- 舞臺(tái)音響燈光工程投標(biāo)書范本
- DZ∕T 0064.49-2021 地下水質(zhì)分析方法 第49部分:碳酸根、重碳酸根和氫氧根離子的測(cè)定 滴定法(正式版)
- 貨物供應(yīng)方案及運(yùn)輸方案
- 幼兒語言表達(dá)能力提高策略
評(píng)論
0/150
提交評(píng)論