版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1.1數(shù)據(jù)預(yù)處理簡介1.1數(shù)據(jù)預(yù)處理簡介.pptx1.2搭建Python開發(fā)環(huán)境.pptx2.1-2.2pandas概述、安裝和導(dǎo)入.pptx2.3.1-2Series對象的特點和創(chuàng)建.pptx2.3.3Series對象的索引.pptx2.3.4Series對象的操作.pptx2.4.1-2DataFrame對象的特點和創(chuàng)建.pptx2.4.3DataFrame對象的索引.pptx2.4.4DataFrame對象的操作(1).pptx2.4.4DataFrame對象的操作(2).pptx3.1數(shù)據(jù)爬取.pptx3.2數(shù)據(jù)讀寫.pptx4.1堆疊合并數(shù)據(jù).pptx4.2主鍵合并數(shù)據(jù).pptx4.3重疊合并數(shù)據(jù).pptx5.1缺失值處理.pptx5.2重復(fù)值處理.pptx5.3異常值處理.pptx5.4格式不一致數(shù)據(jù)的處理.pptx6.1數(shù)據(jù)類型變換.pptx6.2數(shù)據(jù)格式變換.pptx6.3數(shù)據(jù)映射.pptx7.1數(shù)據(jù)的統(tǒng)計計算.pptx7.2數(shù)據(jù)的分組與聚合.pptx7.3數(shù)據(jù)的可視化.pptx任務(wù)實踐2-1小明成績表的操作.pptx任務(wù)實踐2-2.pptx任務(wù)實踐4-1合并商品銷售數(shù)據(jù).pptx任務(wù)實踐4-2合并成績表.pptx任務(wù)實踐4-3修補統(tǒng)計數(shù)據(jù).pptx任務(wù)實踐5-1:網(wǎng)上招聘數(shù)據(jù)缺失值處理.pptx任務(wù)實踐5-2:網(wǎng)上招聘數(shù)據(jù)重復(fù)值處理.pptx任務(wù)實踐5-3:網(wǎng)上招聘數(shù)據(jù)異常值處理.pptx任務(wù)實踐5-4:網(wǎng)上招聘數(shù)據(jù)不一致數(shù)據(jù)的處理.pptx任務(wù)實踐6-1:電影數(shù)據(jù)類型變換.pptx任務(wù)實踐6-2:銷售數(shù)據(jù)格式變換.pptx任務(wù)實踐6-3:成績數(shù)據(jù)映射.pptx任務(wù)實踐7-1:成績數(shù)據(jù)的統(tǒng)計計算.pptx任務(wù)實踐7-2:成績數(shù)據(jù)的分組與聚合.pptx任務(wù)實踐7-3:成績數(shù)據(jù)的可視化.pptx學(xué)習(xí)目標(biāo)2.了解數(shù)據(jù)預(yù)處理的重要性1.了解什么是數(shù)據(jù)3.掌握數(shù)據(jù)預(yù)處理的流程1.1.1數(shù)據(jù)與數(shù)據(jù)預(yù)處理
什么是數(shù)據(jù)?聲音圖片文字
在計算機科學(xué)中,數(shù)據(jù)是指所有能輸入到計算機并被計算機程序處理的符號的介質(zhì)的總稱。1.1.1數(shù)據(jù)與數(shù)據(jù)預(yù)處理
什么是大數(shù)據(jù)?(4V)互聯(lián)網(wǎng)每分鐘產(chǎn)生的數(shù)據(jù)1)Volume:表示大數(shù)據(jù)的數(shù)據(jù)體量巨大。2)Velocity:表示大數(shù)據(jù)的數(shù)據(jù)產(chǎn)生、處理和分析的速度在持續(xù)加快。3)Variety:表示大數(shù)據(jù)的數(shù)據(jù)類型繁多。4)Value:表示大數(shù)據(jù)的數(shù)據(jù)價值密度低。1.1.1數(shù)據(jù)與數(shù)據(jù)預(yù)處理
為什么需要數(shù)據(jù)預(yù)處理?
原始數(shù)據(jù)往往存在規(guī)格或精度不一、數(shù)據(jù)缺失、屬性名稱或編碼方式不統(tǒng)一、由于受到噪聲影響而造成的數(shù)據(jù)錯誤或異常值等問題,因此原始數(shù)據(jù)往往是通常所說的“臟”數(shù)據(jù)。
數(shù)據(jù)預(yù)處理的目的就是把這些“臟”數(shù)據(jù)變成“干凈”的數(shù)據(jù)。簡單地說,數(shù)據(jù)預(yù)處理就是將原始數(shù)據(jù)變成便于進(jìn)行數(shù)據(jù)分析或挖掘的形式的過程。數(shù)據(jù)預(yù)處理是進(jìn)行數(shù)據(jù)分析或挖掘前一個非常必要的過程。1.1.2數(shù)據(jù)預(yù)處理的重要性在一個完整的數(shù)據(jù)分析或挖掘過程中,數(shù)據(jù)預(yù)處理往往要花費60%左右的時間,而數(shù)據(jù)質(zhì)量的好壞往往關(guān)系后續(xù)數(shù)據(jù)分析或挖掘工作的成敗。數(shù)據(jù)質(zhì)量是在指定條件下使用時,數(shù)據(jù)的特性滿足明確的和隱含的要求的程度。1.1.2數(shù)據(jù)預(yù)處理的重要性名稱描述規(guī)范性數(shù)據(jù)符合數(shù)據(jù)標(biāo)準(zhǔn)、數(shù)據(jù)模型、業(yè)務(wù)規(guī)則、元數(shù)據(jù)或權(quán)威參考數(shù)據(jù)的程度。完整性按照數(shù)據(jù)規(guī)則要求,數(shù)據(jù)元素被賦予數(shù)值的程度。包括數(shù)據(jù)元素的完整性和數(shù)據(jù)記錄的完整性。是衡量所必須的數(shù)據(jù)的完整程度,如不能缺失的空值檢查。準(zhǔn)確性數(shù)據(jù)準(zhǔn)確表示其所描述的真是實體(實際對象)真實值的程度。確保數(shù)據(jù)必須反映真實的業(yè)務(wù)內(nèi)容。包括數(shù)據(jù)內(nèi)容正確性、數(shù)據(jù)格式合規(guī)性、數(shù)據(jù)重復(fù)率、數(shù)據(jù)唯一性和無效數(shù)據(jù)出現(xiàn)率等。一致性數(shù)據(jù)與其他特定上下文中使用的數(shù)據(jù)無矛盾的程度。要求數(shù)據(jù)元素的類型和含義必須一致和清晰。包括相同數(shù)據(jù)的一致性和關(guān)聯(lián)數(shù)據(jù)的一致性。時效性數(shù)據(jù)在時間變化中的正確程度。包括基于時間段的正確性、基于時間點的及時性和時序性??稍L問性數(shù)據(jù)能被訪問的程度。包括數(shù)據(jù)在需要時的可獲取性和在有效生存周期內(nèi)的可使用性。
數(shù)據(jù)預(yù)處理的過程1.1.3數(shù)據(jù)預(yù)處理的過程數(shù)據(jù)獲取就是將爬蟲,儀器設(shè)備等采集的不同數(shù)據(jù)源,可能是txt、excel、csv這種文件,也可能是存儲在數(shù)據(jù)庫中的數(shù)據(jù)庫文件,通過讀取這些文件加載到內(nèi)存中,以Python特定的對象來保存,以便于進(jìn)行后續(xù)的數(shù)據(jù)預(yù)處理操作。數(shù)據(jù)合并主要是將存儲在多張表中的數(shù)據(jù)合并為一張表,便于進(jìn)行數(shù)據(jù)分析。通過數(shù)據(jù)合并,可以將關(guān)聯(lián)的數(shù)據(jù)信息存入一張表中。。數(shù)據(jù)清洗的主要目的是增加數(shù)據(jù)量,具體操作可能包括拼接多個數(shù)據(jù)文件等。數(shù)據(jù)變換主要是將數(shù)據(jù)變換成便于數(shù)據(jù)分析或數(shù)據(jù)挖掘的形式。數(shù)據(jù)變換是將數(shù)據(jù)從一種類型/格式變換為另一種類型/格式,或按照指定的映射變換為另一種數(shù)據(jù)的過程。1.2搭建Python開發(fā)環(huán)境學(xué)習(xí)目標(biāo)2.掌握Python開發(fā)環(huán)境的
搭建1.了解Python語言的特點3.掌握J(rèn)upyterLab環(huán)境
的基本使用1.2.1Python概述/tiobe-index/(編程語言社區(qū)TIOBE最新發(fā)布編程語言排行榜)1月Python繼續(xù)超越C、Java成為全世界第一熱門語言!1.2.1Python概述Python是一種強大的、可擴展性強的面向?qū)ο缶幊陶Z言,目前的最新的通用版本是Python3。(一般用3.6及以上版本)Python是開源的,具有豐富和強大的庫,還能把使用其他語言制作(包括C/C++、Java等)的各種模塊輕松的聯(lián)結(jié)起來。Python是解釋型的語言,具有跨平臺的特性,可以在Windows、MacOS、linux等環(huán)境下運行。1.2.1Python概述Python具有以下優(yōu)點:①易于學(xué)習(xí)。Python代碼定義清晰,語法簡單,對初學(xué)者非常友好。②易于維護(hù)。Python的代碼容易閱讀,維護(hù)相對容易。③具有一個廣泛的標(biāo)準(zhǔn)庫。Python的最大的優(yōu)勢之一是開源且具有豐富的庫,在各種不同環(huán)境都能較好兼容。④可交互。Python具有互動模式,可以從終端輸入執(zhí)行代碼并獲得結(jié)果的,便于進(jìn)行測試和調(diào)試代碼片斷。⑤可移植性較好?;谄溟_放源代碼的特性,Python開發(fā)的程序可被移植到多種平臺。⑥可擴展較好。可以將Python嵌入到C/C++等其他語言編寫的程序,也可以調(diào)用其他語言編寫的程序模塊。⑦支持?jǐn)?shù)據(jù)庫和GUI編程。Python提供所有主要的商業(yè)數(shù)據(jù)庫的接口,也支持GUI。1.2.1Python概述Web開發(fā)人工智能應(yīng)用開發(fā)測試爬蟲開發(fā)數(shù)據(jù)分析運維1.2.2安裝Anaconda
Anaconda是一個開源的Python發(fā)行版本,可以對開發(fā)環(huán)境進(jìn)行統(tǒng)一管理,包含了conda、Python等180多個科學(xué)包及其依賴項,可以高效使用Python和R等多種語言,具有安裝簡單、便于使用和管理等優(yōu)點。在Anaconda的官方網(wǎng)站下載個人版(IndividualEdition),Anaconda對個人非商用是免費的。1.2.2安裝Anaconda
以Windows為例,下載安裝包后,雙擊即可啟動安裝。如圖1.2.5所示,單擊Next按鈕進(jìn)入下一步。1.2.2安裝Anaconda
接著將彈出許可協(xié)議,單擊同意(IAgree)按鈕即可進(jìn)入下一步。1.2.2安裝Anaconda
然后是選擇允許使用Anaconda的用戶范圍。如果需要為所有用戶安裝則需要管理員權(quán)限,若沒有對應(yīng)權(quán)限則勾選“JustMe”選項,然后單擊“Next”按鈕進(jìn)入下一步。1.2.2安裝Anaconda
選擇安裝Anaconda的路徑,確認(rèn)安裝路徑所在的硬盤空間能滿足Anaconda安裝和運行。注意安裝路徑中不能包含空格,最好是全英文的路徑,再單擊“Next”進(jìn)入下一步??蛇x擇不同的安裝路徑1.2.2安裝Anaconda
官網(wǎng)推薦不要勾選“AddAnacondatomyPATHenvironmentvariable”,即“添加Anaconda到環(huán)境變量”的選項。不勾選的話,以后要使用命令時需從開始菜單中打開AnacondaNavigator或AnacondaPrompt。然后在里面用conda等命令。優(yōu)點:避免影響其他軟件缺點:因為沒添加,所以不能
直接在cmd中運行。單擊“Install”按鈕啟動Anaconda的安裝1.2.2安裝Anaconda啟動安裝后待安裝完成
安裝完成1.2.2安裝Anaconda在開始菜單的“所有程序”中,選擇Anaconda,打開AnacondaNavigator,若能成功啟動如圖所示的主界面,則說明安裝成功。1.2.3創(chuàng)建Python虛擬環(huán)境創(chuàng)建虛擬環(huán)境是為了讓項目運行在一個獨立的局部的Python環(huán)境中,使得不同環(huán)境的項目互不干擾。在開始菜單的“所有程序”中,選擇Anaconda,點擊AnacondaPrompt,打開Anaconda的命令行界面,使用conda創(chuàng)建Python虛擬環(huán)境的語法格式如下:conda
create
-n
your_env_namepython=x.x
上述代碼利用conda命令創(chuàng)建python版本為x.x,名字為your_env_name的虛擬環(huán)境。your_env_name文件可以在Anaconda安裝目錄envs文件下找到。1.2.3創(chuàng)建Python虛擬環(huán)境激活剛創(chuàng)建的虛擬環(huán)境condaactivateyour_env_name關(guān)閉虛擬環(huán)境condadeactivateyour_env_name刪除虛擬環(huán)境condaremove-nyour_env_name--all1.2.4認(rèn)識JupyterLabJupyterLab是Jupyter的一個拓展,是一個基于Web和JupyterNotebook的交互式開發(fā)環(huán)境。超強下一代JupyterNotebook:JupyterLab3.0已經(jīng)發(fā)布,在以下幾個方面進(jìn)行了改進(jìn):可視化調(diào)試器支持多種顯示語言notebook目錄擴展系統(tǒng)JupyterLab3.0介紹可參考如下網(wǎng)址:/s/DKFDfnLwGunl-09B-zshjw1.2.4認(rèn)識JupyterLab安裝JupyterLab:
可以直接通過命令行安裝。
命令行安裝(從AnacondaPrompt打開)condainstall-cconda-forgejupyterlabconda-forge是一個包含很多軟件包的庫,默認(rèn)是直接使用anaconda庫。pipinstalljupyterlab或(1).安裝jupyter
lab(2).運行1.2.4認(rèn)識JupyterLab練習(xí):建立一個自己的項目文件夾(1).在數(shù)據(jù)盤新建一個文件夾(最好以數(shù)字或英文命名)(2).在windows開始菜單欄輸入cmd,打開命令提示符。輸入盤符進(jìn)入數(shù)據(jù)盤。(3).輸入cd你剛才新建的文件夾名,進(jìn)入這個目錄。例如,假如剛才創(chuàng)建的項目文件夾為myjupyter,則輸入:cdmyjupter(4).在當(dāng)前目錄下打開jupyterlab。在當(dāng)前命令行輸入:jupyter
lab(3)jupyterlab主界面如圖所示:1.2.4認(rèn)識JupyterLab主菜單位于窗口頂部。左側(cè)邊欄顯示的圖標(biāo)依次分別是打開新啟動器、添加文件夾、上傳文件和刷新文件列表的按鈕。右側(cè)窗格是主要工作區(qū)域,可以在此新建notebook、console、或者Terminal,Text文件等。1.2.5使用JupyterLab編寫HelloWorld文件夾創(chuàng)建:創(chuàng)建一個文件夾dataprocess,然后在它下面創(chuàng)建文件夾U1。1.2.5使用JupyterLab編寫HelloWorld單擊右側(cè)窗格中Notebook下的Python3圖標(biāo),在U1目錄下創(chuàng)建一個Notebook文檔,右鍵點擊文件名,選擇rename,將默認(rèn)的文件名改為helloworld.ipynb。創(chuàng)建文檔后,啟動器窗口會被文檔窗口取代,如下所示:1.2.5使用JupyterLab編寫HelloWorld在helloworld.ipynb界面的單元格中輸入Python代碼:1print(‘HelloWorld’)單擊運行按鈕,即可運行單元格中所輸入的代碼并得到運行結(jié)果,如下所示:
1.創(chuàng)建名為”dataprocess”的虛擬環(huán)境,并激活該虛擬環(huán)境。
2.啟動JupyterLab,在dataprocess下新建一個Notebook文
件。
3.在文件中編寫代碼輸出你的學(xué)號、姓名和家鄉(xiāng)的城市名稱。
4.試分別使用Console(控制臺)和Terminate(Python終端)
來實現(xiàn)輸出5.提交代碼和運行結(jié)果截圖。課堂練習(xí):2.1-2.2pandas概述、安裝和導(dǎo)入學(xué)習(xí)內(nèi)容2.pandas的安裝和導(dǎo)入1.pandas概述2.1pandas概述pandas是一個快速、強大、靈活且易于使用的開源數(shù)據(jù)處理和操作工具,它構(gòu)建在Python編程語言之上,2008年由金融數(shù)據(jù)分析師WesMcKinney(韋斯·麥金尼)開發(fā)。自2015年以來,pandas成為NumFOCUS(專注于開源數(shù)據(jù)科學(xué)軟件的非營利基金會)贊助的項目,這為pandas成為世界級開源項目提供了有力保障。開發(fā)pandas的初衷是方便地進(jìn)行金融數(shù)據(jù)分析,現(xiàn)在pandas的功能越來越豐富,應(yīng)用范圍也越來越廣,幾乎所有需要進(jìn)行數(shù)據(jù)處理的地方它都可以派上用場。2.1pandas概述pandas的官網(wǎng)提供了詳細(xì)的學(xué)習(xí)文檔(PDF文件和HTML文件都有)2.1pandas概述pandas進(jìn)行數(shù)據(jù)預(yù)處理主要有以下亮點:①讀?。簆andas提供了強大的文件讀取方法,可以非常方便地讀取TXT文件、CSV文件、Excel文件、SQL數(shù)據(jù)庫文件等。②清洗:數(shù)據(jù)集往往存在缺失值、重復(fù)值和異常值等,pandas提供了許多方便快捷的方法來處理這些缺失值、重復(fù)值和異常值等。③合并與拼接:pandas提供了強大的方法,可以很容易實現(xiàn)數(shù)據(jù)的合并與拼接。④結(jié)果展現(xiàn):pandas與matplotlib搭配,不用復(fù)雜的代碼,就可以生成多種多樣的數(shù)據(jù)視圖。2.2pandas的安裝和導(dǎo)入pip安裝conda安裝1pipinstallpandas1condainstallpandas在Anaconda的命令行輸入“activatedataprocess”,激活上一章已經(jīng)創(chuàng)建的虛擬環(huán)境dataprocess,然后用conda命令安裝pandas:2.2pandas的安裝和導(dǎo)入啟動Jupyter
Lab,在dataprocess目錄下創(chuàng)建目錄U2,并新建一個Notebook文件test.ipynb。
測試pandas能否使用第1行代碼導(dǎo)入pandas庫,并命名為pd第2行代碼輸出pandas的版本。
2.3.1-2Series對象的特點和創(chuàng)建學(xué)習(xí)內(nèi)容2.Series對象的創(chuàng)建1.Series對象的特點2.3.1Series對象的特點
pandas中主要有兩種數(shù)據(jù)結(jié)構(gòu),分別是:Series和DataFrame。名稱描述維數(shù)Series帶標(biāo)簽的一維同構(gòu)數(shù)組1DataFrame帶標(biāo)簽的,大小可變的二維異構(gòu)表格2表2.3.1pandas的主要數(shù)據(jù)結(jié)構(gòu)2.3.1Series對象的特點
Series與Python的基本數(shù)據(jù)結(jié)構(gòu)list也很相近,它們的區(qū)別是:list中的元素可以是不同的數(shù)據(jù)類型,而Series中的元素只能是相同的數(shù)據(jù)類型,這樣可以更有效的使用內(nèi)存,提高運算效率。表2.3.2Series和List的比較名稱不同相同Series元素的數(shù)據(jù)類型相同1維List元素的數(shù)據(jù)類型可以不相同1維2.3.2Series對象的創(chuàng)建
創(chuàng)建Series對象時,主要使用pandas的構(gòu)造方法Series(),代碼如下所示:1importpandasaspd2s=pd.Series(data,index,dtype,copy)序號參數(shù)說明1data數(shù)據(jù)的形式,如列表,字典等2index標(biāo)簽,如果沒有指定標(biāo)簽,則默認(rèn)為0,1,2,…3dtype數(shù)據(jù)類型。如果沒有,則會根據(jù)元素的值推斷數(shù)據(jù)類型4copy復(fù)制數(shù)據(jù),默認(rèn)為False。表2.3.3Series構(gòu)造方法的參數(shù)說明2.3.2Series對象的創(chuàng)建1.從列表(list)創(chuàng)建Series對象:01importpandasaspd02inventions=pd.Series(['造紙術(shù)','指南針','火藥','印刷術(shù)'])03inventions我國的四大發(fā)明是:造紙術(shù)、指南針、火藥和印刷術(shù)。通過list創(chuàng)建一個Series對象來存儲它們,代碼如下所示。第2行代碼通過調(diào)用pandas的Series構(gòu)造方法創(chuàng)建對象,初始化參數(shù)為代表四大發(fā)明的list。執(zhí)行第3行代碼,inventions的輸出結(jié)果如圖。創(chuàng)建Series對象時會自動生成整數(shù)標(biāo)簽,默認(rèn)從0開始至數(shù)據(jù)長度減1,如上述示例的0,1,2,3。dtype是數(shù)據(jù)類型,這里存儲的元素為字符串,輸出為object類型。2.3.2Series對象的創(chuàng)建1.從列表(list)創(chuàng)建Series對象:01importpandasaspd02inventions=pd.Series(['造紙術(shù)','指南針','火藥','印刷術(shù)],index=['a','b','c','d'])
03inventions在Series構(gòu)造方法中,還可以通過index參數(shù)來指定標(biāo)簽值,代碼如下所示。通過index參數(shù)來指定標(biāo)簽值后,輸出標(biāo)簽分別為a,b,c,d。2.3.2Series對象的創(chuàng)建2.從字典(dict)創(chuàng)建Series對象:01importpandasaspd02books=pd.Series({'施耐庵':'水滸傳','羅貫中':'三國演義','吳承恩':'西游記','曹雪芹':'紅樓夢'})03books我國的四大名著是:《水滸傳》、《三國演義》、《西游記》、《紅樓夢》,它們是中國文學(xué)史中的經(jīng)典作品,是世界寶貴的文化遺產(chǎn)。通過字典(鍵為作者名,值為書名)創(chuàng)建一個Series對象來存儲它們,代碼如下所示。第2行代碼通過調(diào)用pandas的Series構(gòu)造方法創(chuàng)建對象,初始化參數(shù)為存儲了四大名著的作者名和書名的字典。執(zhí)行第3行代碼,books輸出結(jié)果如圖2所示,輸出標(biāo)簽為字典的鍵(作者名),數(shù)據(jù)為字典的值(書名)。2.3.2Series對象的創(chuàng)建3.Series對象的常用屬性和方法:表2.3.4Series對象的常用屬性和方法
序號屬性/方法說明1index返回Series對象的標(biāo)簽2values以數(shù)組形式返回Series對象的元素的值3dtype返回Series對象的數(shù)據(jù)類型4size返回Series對象的數(shù)據(jù)個數(shù)5empty如果Series對象為空則返回True,否則返回False6head(n)返回Series對象的前n個元素,默認(rèn)返回前5個。7tail(n)返回Series對象的后n個元素,默認(rèn)返回前5個。2.3.2Series對象的創(chuàng)建3.Series對象的常用屬性和方法:01importpandasaspd02books=pd.Series({'施耐庵':'水滸傳','羅貫中':'三國演義','吳承恩':'西游記','曹雪芹':'紅樓夢'})03books.index04books.values05books.dtype06books.empty2.3.2Series對象的創(chuàng)建3.Series對象的常用屬性和方法:07books.size08books.head()09books.tail()2.3.3Series對象的索引學(xué)習(xí)內(nèi)容2.Series對象的下標(biāo)索引1.Series對象的標(biāo)簽索引3.Series對象的切片索引2.3.3Series對象的索引
Series對象可以使用標(biāo)簽,下標(biāo)和切片三種方式進(jìn)行索引。
1.使用標(biāo)簽索引:用[
]表示,[
]里面是標(biāo)簽的名稱,輸出結(jié)果為該標(biāo)簽對應(yīng)的元素。01importpandasaspd02inventions=pd.Series(['造紙術(shù)','指南針','火藥','印刷術(shù)'],index=['a','b','c','d'])03inventions['a']第2行代碼通過index指定標(biāo)簽依次為'a','b','c','d'。執(zhí)行第3行代碼,通過標(biāo)簽'a'索引輸出第一個元素‘造紙術(shù)’。思考:inventions['b']輸出什么?2.3.3Series對象的索引2.使用下標(biāo)索引:下標(biāo)索引是從0開始,[0]是Series的第一個元素,[1]是Series對象的第二個元素,以此類推。如果Series對象中有N個元素,則下標(biāo)的取值為0至N-1。01importpandasaspd02inventions=pd.Series(['造紙術(shù)','指南針','火藥','印刷術(shù)'])03inventions[0]下標(biāo)0表示第一個元素。思考:inventions[1]輸出什么?2.3.3Series對象的索引2.使用下標(biāo)索引:當(dāng)其標(biāo)簽不是整數(shù)類型,而是其他類型時,則[-1]索引輸出最后一個元素,當(dāng)下標(biāo)為負(fù)數(shù)時則反向輸出,以此類推。01importpandasaspd02inventions=pd.Series(['造紙術(shù)','指南針','火藥','印刷術(shù)'],index=['a','b','c','d'])03inventions[-1]04inventions[-2]2.3.3Series對象的索引3.使用切片索引:既可以使用標(biāo)簽,又可以使用下標(biāo)進(jìn)行切片索引。01importpandasaspd02inventions=pd.Series(['造紙術(shù)','指南針','火藥','印刷術(shù)'],index=['a','b','c','d'])03inventions['a':'c'](1)Series對象使用標(biāo)簽進(jìn)行切片索引時,既包含了標(biāo)簽索引開始的元素,也包含了標(biāo)簽索引結(jié)束的元素。執(zhí)行第3行代碼,使用標(biāo)簽進(jìn)行切片['a':'c']索引時,則會輸出前三個元素。2.3.3Series對象的索引3.使用切片索引:既可以使用標(biāo)簽,又可以使用下標(biāo)進(jìn)行切片索引。01importpandasaspd02inventions=pd.Series(['造紙術(shù)','指南針','火藥','印刷術(shù)],index=['a','b','c','d'])03inventions[0:2](2)Series對象使用下標(biāo)進(jìn)行切片索引時,不會包含下標(biāo)索引結(jié)束的元素。
執(zhí)行第3行代碼,使用標(biāo)簽進(jìn)行切片[0:2]索引時,則只會輸出前兩個元素。思考:下標(biāo)進(jìn)行切片索引為什么不能包
含結(jié)束的元素?2.3.4Series對象的操作學(xué)習(xí)內(nèi)容2.Series對象的操作:刪除3.Series對象的操作:修改1.Series對象的操作:增加4.Series對象的操作:排序5.Series對象的操作:篩選2.3.4Series對象的操作
Series對象提供了很多方法對其存儲的元素進(jìn)行操作:包括增加、刪除、修改、排序和篩選等。我國的五大名山是:東岳泰山(海拔約1545.0m)、南岳衡山(海拔約1300.2m)、西岳華山(海拔約2154.9m)、北岳恒山(海拔約2016.1m)、中岳嵩山(海拔約1491.7m)。如何創(chuàng)建一個Series對象存儲五大名山的數(shù)據(jù)?01importpandasaspd02mountains=pd.Series({'東岳泰山':1545.0,'南岳衡山':1300.2,
'西岳華山':2154.9})03mountains輸出mountains存儲的元素。山名作為元素的標(biāo)簽,山的海拔高度作為元素的值,其類型為float。2.3.4Series對象的操作1.Series對象的操作:增加(1)Series對象可以通過標(biāo)簽來增加單個元素。01importpandasaspd02mountains=pd.Series({'東岳泰山':1545.0,'南岳衡山':1300.2,
'西岳華山':2154.9})03mountains04mountains['北岳恒山']=2016.105mountainsmountains的末尾增加了北岳恒山和它的海拔高度。2.3.4Series對象的操作1.Series對象的操作:增加(2)Series還可以通過append()方法來連接另一個Series對象,并將其附加到前一個Series對象的末尾。mountains的末尾增加了中岳嵩山和它的海拔高度。06mountain2=pd.Series({'中岳嵩山':1491.7})07mountains.append(mountain2)#通過append連接另一個Series對象2.3.4Series對象的操作2.Series對象的操作:刪除Series對象提供了drop()方法,可以通過標(biāo)簽實現(xiàn)刪除相應(yīng)的元素值。01importpandasaspd02mountains=pd.Series({'東岳泰山':1545.0,'南岳衡山':1300.2,'西岳華山':2154.9})03mountains.drop('南岳衡山',inplace=True)#刪除南岳衡山,直接在原數(shù)據(jù)操作04mountains表2.3.5drop()方法的常用參數(shù)說明序號參數(shù)說明1label要刪除元素的標(biāo)簽名稱,若沒有標(biāo)簽,則可以用默認(rèn)的整數(shù)下標(biāo)2axis默認(rèn)為03inplace默認(rèn)為False,操作不改變原數(shù)據(jù),而是返回一個執(zhí)行刪除操作后的新Series對象;若指定為True,則直接在原數(shù)據(jù)上進(jìn)行刪除操作思考:如果要刪除兩個元素呢?2.3.4Series對象的操作2.Series對象的操作:刪除還可以通過標(biāo)簽數(shù)組,使用drop()方法一次性刪除多個值,代碼如下所示。01importpandasaspd02mountains=pd.Series({'東岳泰山':1545.0,'南岳衡山':1300.2,'西岳華山':2154.9})03mountains.drop(labels=['東岳泰山','西岳華山'],inplace=True)#刪除東岳泰山,西岳華山04mountainsmountains使用drop()方法通過labels參數(shù)指定的標(biāo)簽數(shù)組刪除了東岳泰山和西岳華山以及它們的海拔高度。2.3.4Series對象的操作3.Series對象的操作:修改與增加操作類似,Series對象可以直接通過標(biāo)簽來修改元素的值。01importpandasaspd02mountains=pd.Series({'東岳泰山':1545.0,'南岳衡山':1300.2,'西岳華山':2154.9})03mountains['西岳華山']=2155.0#修改西岳華山的海拔高度為2155.0m04mountainsmountains中西岳華山的海拔高度被修改為2155.0m。2.3.4Series對象的操作4.Series對象的操作:排序(1)按值排序:sort_values()Series可以使用sort_values()方法按存儲的元素的值來排序,排序時默認(rèn)升序。設(shè)置參數(shù)ascending=False,可以指定按降序排列。01importpandasaspd02mountains=pd.Series({'東岳泰山':1545.0,'南岳衡山':1300.2,'西岳華山':2154.9,'北岳恒山':2016.1,'中岳嵩山':1491.7})03mountains.sort_values()
#按值排序,默認(rèn)升序04mountains.sort_values(ascending=False)
#按值排序,指定降序2.3.4Series對象的操作4.Series對象的操作:排序(1)按值排序:sort_values()默認(rèn)按值升序排列設(shè)置ascending=False按值降序排列2.3.4Series對象的操作4.Series對象的操作:排序(2)按標(biāo)簽排序:sort_index()Series可以使用sort_index()方法按標(biāo)簽來排序,默認(rèn)升序。設(shè)置參數(shù)ascending=False,可以指定按降序排列。當(dāng)標(biāo)簽為字符時,采用Unicode編碼值來排序。01importpandasaspd02mountains=pd.Series({'東':1545.0,'南':1300.2,'西':2154.9,'北':2016.1,'中':1491.7})03mountains.sort_index()#按標(biāo)簽(Unicode編碼)排序,默認(rèn)升序04mountains.sort_index(ascending=False)#按標(biāo)簽(Unicode編碼)排序,指定降序2.3.4Series對象的操作4.Series對象的操作:排序(2)按標(biāo)簽排序:sort_index()標(biāo)簽為東(Unicode編碼值\u4e1c),南(Unicode編碼值\u5357),西(Unicode編碼值\u897f),北(Unicode編碼值\u5317),中(Unicode編碼值\u4e2d)默認(rèn)按標(biāo)簽升序排列ascending=False指定按標(biāo)簽降序2.3.4Series對象的操作5.Series對象的操作:篩選(1)條件篩選:通過對元素的值進(jìn)行條件判斷,可以進(jìn)行元素篩選。示例:從mountains中篩選輸出海拔高度大于1500米的山01importpandasaspd02mountains=pd.Series({'東岳泰山':1545.0,'南岳衡山':1300.2,'西岳華山':2154.9,'北岳恒山':2016.1,'中岳嵩山':1491.7})03mountains[mountains>1500]#篩選輸出海拔高度大于1500米的山篩選輸出海拔大于1500m的山,分別為東岳泰山(1545.0m)、西岳華山(2154.9m)、北岳恒山(2016.1m)2.3.4Series對象的操作5.Series對象的操作:篩選空值篩選:Series還提供了isnull()方法來判斷是否元素有空值,如果元素的值為空則輸出True,否則輸出False。01importpandasaspd02s=pd.Series({'a':1,'b':2},index=['a','b','c'])03s.isnull()#判斷s中的元素是否存在空值04s[s.isnull()]#查看s中的元素的空值前兩個元素的值不為空,第3個元素的值為空元素的空值表示為NaN2.4.1-2DataFrame對象的特點和創(chuàng)建學(xué)習(xí)內(nèi)容2.DataFrame對象的創(chuàng)建1.DataFrame對象的特點2.4.1DataFrame對象的特點DataFrame對象是一種二維表格型的數(shù)據(jù)結(jié)構(gòu),包含一組有序的列,每一列的值可以是不同類型(數(shù)值類型、字符串類型、布爾型等)的數(shù)據(jù)。DataFrame對象既有行標(biāo)簽(index),也有列標(biāo)簽(columns)。2.4.2DataFrame對象的創(chuàng)建
使用pandas的DataFrame()構(gòu)造方法就可以創(chuàng)建DataFrame對象,代碼如下所示。01importpandasaspd02df=pd.DataFrame(data,index,columns,dtype,copy)序號參數(shù)說明1data數(shù)據(jù)的形式,如二維數(shù)組、字典等2index行標(biāo)簽,如果沒有標(biāo)簽被傳遞,則默認(rèn)為0,1,2…3columns列標(biāo)簽,如果沒有標(biāo)簽被傳遞,則默認(rèn)為0,1,2…4dtype數(shù)據(jù)類型。如果沒有,則會推斷數(shù)據(jù)類型5copy復(fù)制數(shù)據(jù),默認(rèn)為False表2.4.1DataFrame構(gòu)造方法的參數(shù)說明2.4.2DataFrame對象的創(chuàng)建1.通過二維數(shù)組創(chuàng)建DataFrame對象01importpandasaspd02data=[['黃山','安徽','黃山',1864.8],['泰山','山東','泰安',1545.0],['廬山','江西','九江',1474.0],['恒山','山西','大同',2016.1],['華山','陜西','渭南',2154.9],['衡山','湖南','衡陽',1300.2]]03columns=['mountain','province','city','height']04mountainsDF=pd.DataFrame(data=data,columns=columns)05mountainsDF第2行代碼定義了一個二維數(shù)組data來存儲這些名山的信息。第3行代碼指定了列標(biāo)簽。第4行代碼通過構(gòu)造方法來創(chuàng)建DataFrame對象,傳遞參數(shù)為第2行代碼定義的數(shù)據(jù)data和第3行代碼定義的列標(biāo)簽。2.4.2DataFrame對象的創(chuàng)建2.通過字典創(chuàng)建DataFrame對象第2行代碼直接通過字典來創(chuàng)建DataFrame對象。執(zhí)行第3行代碼的輸出結(jié)果如圖所示,字典的鍵值直接作為DataFrame對象的列標(biāo)簽,行標(biāo)簽還是默認(rèn)為0,1,…,501importpandasaspd02mountainsDF=pd.DataFrame({'mountain':['黃山','泰山','廬山','恒山','華山','衡山'],'province':['安徽','山東','江西','山西','陜西','湖南'],'city':['黃山','泰安','九江','大同','渭南','衡陽],'height':[1864.8,1524,1474,2016,2154.9,1300.2]})03mountainsDF2.4.2DataFrame對象的創(chuàng)建3.DataFrame的常用屬性和方法表2.4.2
DataFrame的常用屬性和方法序號屬性/方法說明1index返回DataFrame對象的行標(biāo)簽信息2columns返回DataFrame對象的列標(biāo)簽信息3values返回DataFrame對象所有元素的值4dtypes返回DataFrame對象的數(shù)據(jù)類型5TDataFrame對象中元素的行/列數(shù)據(jù)轉(zhuǎn)換6shape返回DataFrame對象的行數(shù)([0]),列數(shù)([1])7head(n)返回DataFrame對象的前n個元素,默認(rèn)返回前5個。8tail(n)返回DataFrame對象的后n個元素,默認(rèn)返回后5個。9info()返回DataFrame對象中元素的完整信息,包括行列標(biāo)簽,數(shù)據(jù)類型,是否有空值,占用的內(nèi)存大小等2.4.2DataFrame對象的創(chuàng)建3.DataFrame的常用屬性和方法01importpandasaspd02mountainsDF=pd.DataFrame({'mountain':['黃山','泰山','廬山','恒山','華山','衡山'],'province':['安徽','山東','江西','山西','陜西','湖南'],'city':['黃山','泰安','九江','大同','渭南','衡陽],'height':[1864.8,1524,1474,2016,2154.9,1300.2]})03mountainsDF.index04mountainsDF.columns05mountainsDF.values06mountainsDF.dtypes07mountainsDF.T2.4.2DataFrame對象的創(chuàng)建3.DataFrame的常用屬性和方法08mountainsDF.shape[0]09mountainsDF.shape[1]10mountainsDF.head()11mountainsDF.tail()12mountainsDF.info()2.4.3DataFrame對象的索引學(xué)習(xí)內(nèi)容2.DataFrame對象的行索引1.DataFrame對象的列索引3.DataFrame對象的loc[
]和iloc[
]索引2.4.3DataFrame對象的索引1.
DataFrame對象的列索引:直接通過列標(biāo)簽就可以實現(xiàn)索引01importpandasaspd02mountainsDF=pd.DataFrame({'mountain':['黃山','泰山','廬山','恒山','華山','衡山'],'province':['安徽','山東','江西','山西','陜西','湖南'],'city':['黃山','泰安','九江','大同','渭南','衡陽'],'height':[1864.8,1545,1474,2016.1,2154.9,1300.2]})03mountainsDF[['mountain']]
#獲取'mountain'列數(shù)據(jù)(返回DataFrame對象)04mountainsDF[['mountain','city']]
#獲取'mountain'和'city'列數(shù)據(jù)(返回DataFrame對象)獲得列標(biāo)簽為'mountain'的列數(shù)據(jù)獲得列標(biāo)簽為'mountain'和'city'的2列數(shù)據(jù)2.4.3DataFrame對象的索引2.
DataFrame對象的行索引:通過下標(biāo)切片實現(xiàn)索引05mountainsDF[0:1]#通過行標(biāo)簽(整數(shù)下標(biāo))切片方式獲取第1行數(shù)據(jù)06mountainsDF[1:3]#通過行標(biāo)簽(整數(shù)下標(biāo))切片方式獲取第2-3行數(shù)據(jù)思考:下標(biāo)切片有什么特點?執(zhí)行第5行代碼,獲取mountainsDF的第1行數(shù)據(jù)mountainsDF中通過行標(biāo)簽索引獲取第1行數(shù)據(jù)執(zhí)行第6行代碼,獲取mountainsDF的第2至3行數(shù)據(jù)mountainsDF中通過下標(biāo)切片獲取第2-3行數(shù)據(jù)2.4.3DataFrame對象的索引2.
DataFrame對象的行索引:通過行標(biāo)簽實現(xiàn)索引如果指定了DataFrame對象的行標(biāo)簽(index),可以通過行標(biāo)簽切片的方式獲取行數(shù)據(jù),而且包含了結(jié)束標(biāo)簽表示的行數(shù)據(jù)。07index=['a','b','c','d','e','f']08mountainsDF.index=index#設(shè)置行標(biāo)簽09mountainsDF['a':'c']#獲取前3行數(shù)據(jù)思考:行標(biāo)簽切片有什么特點?2.4.3DataFrame對象的索引3.
DataFrame對象的loc[]和iloc[]花式索引:只獲取部分行和部分列的數(shù)據(jù)(1)loc基于標(biāo)簽索引(標(biāo)簽名稱,如'a','b'等),通過標(biāo)簽獲取相應(yīng)的數(shù)據(jù),且包含結(jié)束標(biāo)簽包含的數(shù)據(jù)。當(dāng)執(zhí)行下標(biāo)切片索引時,既包含起始標(biāo)簽表示的數(shù)據(jù),也包含結(jié)束標(biāo)簽表示的數(shù)據(jù)。(2)
iloc基于下標(biāo)索引(整數(shù)值,從0開始至長度-1),通過下標(biāo)獲取相應(yīng)的數(shù)據(jù),且不包含結(jié)束下標(biāo)包含的數(shù)據(jù)。。當(dāng)執(zhí)行下標(biāo)切片索引時,只包含起始下標(biāo)表示的數(shù)據(jù),不包含結(jié)束下標(biāo)表示的數(shù)據(jù)。2.4.3DataFrame對象的索引3.
DataFrame對象的loc[]和iloc[]花式索引:只獲取部分行和部分列的數(shù)據(jù)03mountainsDF.loc[3:4,['mountain','height']]#基于標(biāo)簽完成花式索引04mountainsDF.iloc[3:5,[0,3]]#基于下標(biāo)完成花式索引總結(jié):loc[]和iloc[]花式索引各有什么特點?2.4DataFrame對象的操作(1)學(xué)習(xí)內(nèi)容1.DataFrame對象的操作:增加2.DataFrame對象的操作:刪除3.DataFrame對象的操作:修改2.4.4DataFrame對象的操作
DataFrame是一種二維數(shù)據(jù)表結(jié)構(gòu),能夠?qū)π泻土袛?shù)據(jù)進(jìn)行操作。1.增加:添加一行或者一列(1)添加行:df.loc[],df代表DataFrame對象,[
]里面為行標(biāo)簽或者列標(biāo)簽。03mountainsDF.loc[6]=['嵩山','河南','登封',1491.7]
04mountainsDF使用df.loc[]方法完成在mountainsDF最后增加一行數(shù)據(jù)2.4.4DataFrame對象的操作1.增加:添加一行或者一列(1)添加行:df.append()03df2=pd.DataFrame({'mountain':['嵩山','武夷山'],'province':['河南','福建'],'city':['登封','南平'],'height':[1491.7,2158.0]})04#合并,可以重新排列行標(biāo)簽mountainsDF2=mountainsDF.append(df2,ignore_index=True)05mountainsDF2第3行代碼構(gòu)造df2對象。第4行代碼,mountainsDF調(diào)用append()方法將df2的數(shù)據(jù)加到末尾,并通過mountainsDF2保存。ignore_index設(shè)置為True可以重新分配行標(biāo)簽。2.4.4DataFrame對象的操作1.增加:添加一行或者一列(2)添加列:df[
]03mountainsDF['level']=['5A','5A','5A','4A','5A','5A']04mountainsDF第3行代碼默認(rèn)在mountainsDF的最后添加了'level'列df[
]里面是列標(biāo)簽,等號右邊為新增列的賦值。2.4.4DataFrame對象的操作1.增加:添加一行或者一列(2)添加列:df.insert()方法表2.4.3insert()方法的參數(shù)序號參數(shù)說明1loc指定列的下標(biāo)位置,下標(biāo)從0開始2column列標(biāo)簽3value列數(shù)據(jù)4allow_duplicates布爾值,是否允許列名重復(fù),默認(rèn)False,表示不允許,True表示允許03mountainsDF.insert(1,'level',['5A','5A','5A','4A','5A','5A'])04mountainsDF第3行代碼mountainsDF調(diào)用insert()方法在它的第二列添加1列數(shù)據(jù)。思考:和[
]相比,insert()方法有什么特點?2.4.4DataFrame對象的操作2.刪除:DataFrame提供了drop()方法刪除一行或一列表2.4.4drop()方法的參數(shù)序號參數(shù)說明1labels要刪除的行/列的標(biāo)簽2axis默認(rèn)為0,表示刪除行;指定axis=1,表示刪除列3index直接指定要刪除的行標(biāo)簽,包含結(jié)束標(biāo)簽4columns直接指定要刪除的列標(biāo)簽,包含結(jié)束標(biāo)簽5inplace默認(rèn)為False,表示刪除操作不改變原數(shù)據(jù),而是返回一個執(zhí)行刪除操作后的新DataFrame。若指定為True,則直接在原數(shù)據(jù)上進(jìn)行刪除操作01DataFrame.drop(labels,axis,index,columns,inplace=False)2.4.4DataFrame對象的操作2.刪除:DataFrame提供了drop()方法刪除一行或一列03mountainsDF.drop([0,1])#刪除mountainsDF前2行數(shù)據(jù)04mountainsDF.drop(index=[0,1])#刪除mountainsDF前2行數(shù)據(jù)(1)刪除行執(zhí)行第3行和4行代碼的運行結(jié)果都是一樣的,都是刪除mountainsDF前2行數(shù)據(jù),這里drop()方法沒有指定inplace參數(shù),默認(rèn)為False,表示刪除操作不改變原數(shù)據(jù)2.4.4DataFrame對象的操作2.刪除:DataFrame提供了drop()方法刪除一行或一列(2)刪除列:指定axis=105mountainsDF.drop(['province','city'],axis=1)06mountainsDF.drop(columns=['province','city'],axis=1)執(zhí)行第5行和6行代碼的運行結(jié)果都是一樣的,都是刪除'province'、'city'這2列的數(shù)據(jù),這里drop()方法沒有指定inplace參數(shù),默認(rèn)為False,表示刪除操作不改變原數(shù)據(jù)2.4.4DataFrame對象的操作3.修改:包括數(shù)據(jù)的修改和行/列標(biāo)簽的修改(1)數(shù)據(jù)的修改修改DataFrame對象中的數(shù)據(jù),原理是將這部分?jǐn)?shù)據(jù)提取出來,重新賦值為新的數(shù)據(jù)。需要注意的是,數(shù)據(jù)更改直接針對DataFrame原數(shù)據(jù)更改,操作無法撤銷,如果做出更改,需要對原數(shù)據(jù)進(jìn)行備份。數(shù)據(jù)的修改常使用loc[]方法,先基于標(biāo)簽定位某個位置的數(shù)據(jù),然后對此位置的數(shù)據(jù)進(jìn)行修改。使用此方法可以對DataFrame對象進(jìn)行的修改分為3種情況,具體如下:①對1行、多行數(shù)據(jù)進(jìn)行修改②對1列、多列數(shù)據(jù)進(jìn)行修改③對某區(qū)域的數(shù)據(jù)進(jìn)行修改iloc[]方法的使用和loc方法類似,主要是先基于下標(biāo)定位再修改數(shù)據(jù)。2.4.4DataFrame對象的操作3.修改:包括數(shù)據(jù)的修改和行/列標(biāo)簽的修改(1)數(shù)據(jù)的修改①對1行、多行數(shù)據(jù)進(jìn)行修改03mountainsDF.loc[1:1,['mountain','province','city','height']]=['武夷山','福建','南平',2158.0]#修改第2行數(shù)據(jù)04mountainsDF第3行代碼的1:1表示選取第2行數(shù)據(jù),然后對指定的4個標(biāo)簽('mountain','province','city','height')的相應(yīng)數(shù)據(jù)進(jìn)行修改,等號右邊為新的賦值。1行2.4.4DataFrame對象的操作3.修改:包括數(shù)據(jù)的修改和行/列標(biāo)簽的修改(1)數(shù)據(jù)的修改①對1行、多行數(shù)據(jù)進(jìn)行修改03#修改第1-2行數(shù)據(jù)mountainsDF.loc[0:1,['mountain','province','city','height']]=
[['嵩山','河南','登封',1492],['武夷山','福建','南平',2158]]04mountainsDF第3行代碼的0:1表示選取第1和2行的數(shù)據(jù),然后對指定的4個標(biāo)簽['mountain','province','city','height']的相應(yīng)數(shù)據(jù)進(jìn)行修改,等號右邊為新的賦值。多行2.4.4DataFrame對象的操作3.修改:包括數(shù)據(jù)的修改和行/列標(biāo)簽的修改(1)數(shù)據(jù)的修改②對1列、多列數(shù)據(jù)進(jìn)行修改03mountainsDF.loc[:,['province']]=['安徽省','山東省','江西省','山西省','陜西省','湖南省']04mountainsDF第3行代碼的:表示所有行,然后對指定的['province']列進(jìn)行修改,等號右邊為新的賦值。1列2.4.4DataFrame對象的操作3.修改:包括數(shù)據(jù)的修改和行/列標(biāo)簽的修改(1)數(shù)據(jù)的修改②對1列、多列數(shù)據(jù)進(jìn)行修改03mountainsDF.loc[:,['province','city']]=[['安徽省','黃山市'],['山東省','泰安市'],['江西省','九江市'],['山西省','大同市'],['陜西省','渭南市'],['湖南省','衡陽市']]04mountainsDF第3行代碼的:表示所有行,然后對指定的['province','city']2列進(jìn)行修改,等號右邊為新的賦值。多列2.4.4DataFrame對象的操作3.修改:包括數(shù)據(jù)的修改和行/列標(biāo)簽的修改(1)數(shù)據(jù)的修改③對某個區(qū)域的數(shù)據(jù)進(jìn)行修改03#對前2行的province列和city列進(jìn)行修改mountainsDF.loc[0:1,['province','city']]=[['安徽省','黃山市'],['山東省','泰安市']]04mountainsDF總結(jié):對某區(qū)域的數(shù)據(jù)修改,結(jié)合之前的花式索引定位!2.4.4DataFrame對象的操作3.修改:包括數(shù)據(jù)的修改和行/列標(biāo)簽的修改(2)標(biāo)簽的修改:rename()方法修改行標(biāo)簽和列標(biāo)簽的名稱①行標(biāo)簽的修改03mountainsDF.rename(index={0:'a',1:'b'},inplace=True)#修改前2行的標(biāo)簽名稱04mountainsDF第3行代碼mountainsDF調(diào)用rename()方法,指定index參數(shù)為字典,完成行標(biāo)簽名稱修改,inplace=True表示直接修改原數(shù)據(jù)。2.4.4DataFrame對象的操作3.修改:包括數(shù)據(jù)的修改和行/列標(biāo)簽的修改(2)標(biāo)簽的修改:rename()方法修改行標(biāo)簽和列標(biāo)簽的名稱②列標(biāo)簽的修改03mountainsDF.rename(columns={'province':'p','city':'c'},inplace=True)04mountainsDF第3行代碼mountainsDF調(diào)用rename()方法,指定columns參數(shù)為字典,完成列標(biāo)簽名稱修改,inplace=True表示直接修改原數(shù)據(jù)。2.4DataFrame對象的操作(2)學(xué)習(xí)內(nèi)容4.DataFrame對象的操作:排序5.DataFrame對象的操作:篩選2.4.4DataFrame對象的操作(2)4.排序:可以按值排序,也可以按行/列標(biāo)簽排序。按值排序使用sort_values()方法,按標(biāo)簽排序使用sort_index()方法。(1)按值排序:sort_values()
通常按列的值排序,默認(rèn)升序表2.4.5sort_values()方法的常用參數(shù)說明序號參數(shù)說明1by行或者列的標(biāo)簽2axis默認(rèn)為0,axis=0表示對列進(jìn)行操作,axis=1表示對行進(jìn)行操作3ascending默認(rèn)為升序排列,ascending=True表示升序排列,ascending=False表示降序排列4inplace默認(rèn)為False,表示操作不改變原數(shù)據(jù),而是返回一個執(zhí)行排序操作后的新DataFrame。若指定為True,則直接在原數(shù)據(jù)上進(jìn)行操作2.4.4DataFrame對象的操作(2)4.排序:(1)按值排序:sort_values()
通常按列的值排序,默認(rèn)升序01importpandasaspd02mountainsDF=pd.DataFrame({'mountain':['黃山','泰山','廬山','恒山','華山','衡山'],'province':['安徽','山東','江西','山西','陜西','湖南'],'city':['黃山','泰安','九江','大同','渭南','衡陽],'height':[1864.8,1545.0,1474.0,2016.1,2154.9,1300.2]})03#按'height'列的值降序排列mountainsDF.sort_values(by='height',axis=0,ascending=False,inplace=True)04mountainsDF2.4.4DataFrame對象的操作(2)4.排序:(2)按標(biāo)簽排序:sort_index()
默認(rèn)axis=0按行標(biāo)簽,升序序號參數(shù)說明1axis默認(rèn)為0,axis=0表示對行進(jìn)行操作,axis=1表示對列進(jìn)行操作2ascending默認(rèn)為升序排列,ascending=True表示升序排列,ascending=False表示降序排列3inplace默認(rèn)為False,表示操作不會改變原數(shù)據(jù),而是返回一個執(zhí)行排序操作后的新DataFrame。若指定為True,則直接在原數(shù)據(jù)上進(jìn)行操作表2.4.6sort_index()方法的常用參數(shù)說明2.4.4DataFrame對象的操作(2)4.排序:(2)按標(biāo)簽排序:sort_index()
默認(rèn)axis=0按行標(biāo)簽,升序01importpandasaspd02mountainsDF=pd.DataFrame({'mountain':['黃山','泰山','廬山','恒山','華山','衡山'],'province':['安徽','山東','江西','山西','陜西','湖南'],'city':['黃山','泰安','九江','大同','渭南','衡陽],'height':[1864.8,1545.0,1474.0,2016.1,2154.9,1300.2]})03#按行標(biāo)簽降序排列mountainsDF.sort_index(axis=0,ascending=False,inplace=True)04mountainsDF2.4.4DataFrame對象的操作(2)4.排序:(2)按標(biāo)簽排序:sort_index()
axis=1按列標(biāo)簽03#按行標(biāo)簽降序排列mountainsDF.sort_index(axis=1,inplace=True)04mountainsDF2.4.4DataFrame對象的操作(2)5.篩選:(1)條件篩選篩選輸出海拔高度大于1500米的山的信息01importpandasaspd02mountainsDF=pd.DataFrame({'mountain':['黃山','泰山','廬山','恒山','華山','衡山'],'province':['安徽','山東','江西','山西','陜西','湖南'],'city':['黃山','泰安','九江','大同','渭南','衡陽],'height':[1864.8,1545.0,1474.0,2016.1,2154.9,1300.2]})03#按height列的值進(jìn)行條件篩選mountainsDF[mountainsDF['height']>1500]2.4.4DataFrame對象的操作(2)5.篩選:(2)空值篩選:isnull()方法01importpandasaspd02importnumpyasnp03mountainsDF=pd.DataFrame({'mountain':['黃山','泰山','廬山','恒山','華山','衡山'],'province':['安徽','山東','江西',np.NaN,'陜西','湖南'],'city':['黃山',np.NaN,'九江','大同','渭南','衡陽'],'height':[1864.8,1524,1474,2016,2154.9,1300.2]})04mountainsDF.isnull().any()#查看每一列是否存在空值05mountainsDF[mountainsDF.isnull().T.any()]#篩選出包含空值的行通過numpy的常量NaN表示空值在第5行代碼中,T表示轉(zhuǎn)置,isnull()的結(jié)果需要轉(zhuǎn)置之后,才能進(jìn)行any()操作3.1數(shù)據(jù)爬取學(xué)習(xí)目標(biāo)2.了解爬蟲的作用和分類1.了解爬蟲產(chǎn)生的背景3.掌握簡易爬蟲示例3.1.1爬蟲產(chǎn)生的背景思考:如果我們需要大量的數(shù)據(jù),有哪些獲取數(shù)據(jù)的方法呢?目前的互聯(lián)網(wǎng)已經(jīng)邁入大數(shù)據(jù)時代,通過對海量數(shù)據(jù)的分析,能夠產(chǎn)生極大的商業(yè)價值!3.1.1爬蟲產(chǎn)生的背景(1)企業(yè)產(chǎn)生的數(shù)據(jù)(2)數(shù)據(jù)平臺購買的數(shù)據(jù)(3)政府機構(gòu)公開的數(shù)據(jù)(4)數(shù)據(jù)管理咨詢公司的
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030中國銀杏內(nèi)酯市場營銷模式及渠道分析研究報告版
- 2025至2030中國廚電產(chǎn)品高端化轉(zhuǎn)型與渠道變革研究報告
- 二十大安全課件
- 2026年石光中學(xué)教育(集團(tuán))實中校區(qū)招聘編外合同教師備考題庫及參考答案詳解一套
- 2026年招聘廣州南沙人力資源發(fā)展有限公司招聘編外工作人員備考題庫政府編外帶答案詳解
- 2026年未央?yún)^(qū)大明宮社區(qū)衛(wèi)生服務(wù)中心招聘備考題庫及完整答案詳解1套
- 2026年西南計算機有限責(zé)任公司招聘21人備考題庫及答案詳解1套
- 2025至2030中國醫(yī)藥制造行業(yè)政策環(huán)境與市場前景研究報告
- 2025至2030中國口腔醫(yī)療連鎖機構(gòu)擴張速度及人才短缺分析研究報告
- 中國核工業(yè)二三建設(shè)有限公司2025年核級焊接技術(shù)校園招聘備考題庫及一套參考答案詳解
- 券商投行部述職報告
- 金風(fēng)-綠電新政下風(fēng)電資產(chǎn)產(chǎn)銷一體新范式
- 2026屆湖南長沙一中高一生物第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測試題含解析
- PDLC薄膜性能的研究
- 一級2026年注冊建筑師之設(shè)計前期與場地設(shè)計考試題庫300道附參考答案【黃金題型】
- 三方協(xié)議書就業(yè)協(xié)議書
- 排水管網(wǎng)疏通與養(yǎng)護(hù)技術(shù)方案
- 肝內(nèi)膽管惡性腫瘤護(hù)理查房
- 2025-2026學(xué)年浙教版(2023)初中信息科技七年級上冊教學(xué)計劃及進(jìn)度表
- 昆明醫(yī)科大學(xué)海源學(xué)院《高等數(shù)學(xué)下》2024-2025學(xué)年第一學(xué)期期末試卷
- 中國特發(fā)性面神經(jīng)麻痹(面癱)治療指南(2022)解讀
評論
0/150
提交評論