Python數(shù)據(jù)分析與可視化高職全套教學(xué)課件_第1頁
Python數(shù)據(jù)分析與可視化高職全套教學(xué)課件_第2頁
Python數(shù)據(jù)分析與可視化高職全套教學(xué)課件_第3頁
Python數(shù)據(jù)分析與可視化高職全套教學(xué)課件_第4頁
Python數(shù)據(jù)分析與可視化高職全套教學(xué)課件_第5頁
已閱讀5頁,還剩204頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Python數(shù)據(jù)分析與可視化課程基本信息課程名稱Python數(shù)據(jù)分析與可視化課程代碼

課程學(xué)分4.0學(xué)分課程學(xué)時(shí)68學(xué)時(shí)(其中理論32,實(shí)驗(yàn)36)課程性質(zhì)專業(yè)核心課程適用專業(yè)計(jì)算機(jī)相關(guān)專業(yè)先修課程信息技術(shù)、Python程序設(shè)計(jì)課程定位Python是一款用于數(shù)據(jù)統(tǒng)計(jì)、分析、可視化等任務(wù),以及機(jī)器學(xué)習(xí)、人工智能等領(lǐng)域的高效開發(fā)語言。它能滿足幾乎所有數(shù)據(jù)挖掘下所需的數(shù)據(jù)處理、統(tǒng)計(jì)模型和圖表繪制等功能需求。大量的第三方模塊所支持的內(nèi)容涵蓋了從統(tǒng)計(jì)計(jì)算到機(jī)器學(xué)習(xí),從金融分析到生物信息,從社會網(wǎng)絡(luò)分析到自然語言處理,從各種數(shù)據(jù)庫各種語言接口到高性能計(jì)算模型等領(lǐng)域。隨著大數(shù)據(jù)時(shí)代的來臨,數(shù)據(jù)分析與可視化技術(shù)將更加廣泛地滲透到各行各業(yè)中去,而完全面向?qū)ο蟮腜ython的教學(xué)工作也將成為高校計(jì)算機(jī)、數(shù)學(xué)等相關(guān)專業(yè)的重點(diǎn)發(fā)展對象,這是數(shù)字時(shí)代發(fā)展的必然趨勢。課程定位

通過本課程的學(xué)習(xí),可以學(xué)會Python開發(fā)環(huán)境的搭建(面向科學(xué)計(jì)算的Anaconda工具)、使用JupyterNotebook編寫Python程序、掌握相關(guān)函數(shù)、實(shí)用模塊和圖表繪制方法,以及用Python實(shí)現(xiàn)數(shù)據(jù)挖掘常用算法。能夠增強(qiáng)學(xué)生獨(dú)立思考、分析問題、解決問題的編程實(shí)踐能力,提高創(chuàng)新思維、團(tuán)隊(duì)合作能力、增強(qiáng)社會價(jià)值觀和責(zé)任感。為將來從事數(shù)據(jù)分析與可視化工作、職業(yè)生涯規(guī)劃,以及后續(xù)課程的學(xué)習(xí)和數(shù)據(jù)挖掘開發(fā)、科研業(yè)務(wù)奠定基礎(chǔ)。章節(jié)ch01數(shù)據(jù)分析及可視化概述ch02Python語言編程基礎(chǔ)ch03NumPy和Pandas基礎(chǔ)知識ch04使用Pandas導(dǎo)入數(shù)據(jù)ch05數(shù)據(jù)清理案例實(shí)戰(zhàn)ch06HTML表格數(shù)據(jù)及JSON數(shù)據(jù)處理與分析ch07整本書文本處理與分析——以《紅樓夢》為例ch08電商訂單數(shù)據(jù)處理與客戶價(jià)值分析Python編程基礎(chǔ)模塊ch01數(shù)據(jù)分析及可視化概述ch02Python語言編程基礎(chǔ)模塊Module數(shù)據(jù)分析與可視化基礎(chǔ)模塊ch03NumPy和Pandas基礎(chǔ)知識ch04使用Pandas導(dǎo)入數(shù)據(jù)ch05數(shù)據(jù)清理案例實(shí)戰(zhàn)ch06HTML表格數(shù)據(jù)及JSON數(shù)據(jù)處理與分析模塊Module綜合案例項(xiàng)目實(shí)戰(zhàn)模塊ch07整本書文本處理與分析——以《紅樓夢》為例ch08電商訂單數(shù)據(jù)處理與客戶價(jià)值分析模塊Module感謝您的觀看

第1章數(shù)據(jù)分析及可視化概述Python數(shù)據(jù)分析與可視化學(xué)習(xí)目標(biāo)了解數(shù)據(jù)分析及數(shù)據(jù)可視化的概念及意義;了解數(shù)據(jù)分析的流程;了解數(shù)據(jù)分析與可視化常用工具及類庫;了解為何選用Python進(jìn)行數(shù)據(jù)分析與可視化;學(xué)會安裝和使用面向科學(xué)計(jì)算的Anaconda;學(xué)會使用conda安裝和管理Anaconda;掌握J(rèn)upyterNotebook的基本功能及高級功能。任務(wù)一:開發(fā)和運(yùn)行環(huán)境搭建1.1數(shù)據(jù)分析1.2數(shù)據(jù)可視化1.3數(shù)據(jù)分析的流程1.4數(shù)據(jù)分析與可視化常用工具1.5Python數(shù)據(jù)分析與可視化常用類庫1.6為何選用Python進(jìn)行數(shù)據(jù)分析與可視化1.7安裝和使用面向科學(xué)計(jì)算的Anaconda1.8JupyterNotebook的基本功能1.9JupyterNotebook的高級功能目錄CONTENTS1.1數(shù)據(jù)分析

數(shù)據(jù)分析是數(shù)學(xué)與計(jì)算機(jī)科學(xué)相結(jié)合的產(chǎn)物,是指使用適當(dāng)?shù)慕y(tǒng)計(jì)分析方法對搜集來的大量原始數(shù)據(jù)進(jìn)行分析,提取有用信息并形成結(jié)論,從而對數(shù)據(jù)加以詳細(xì)研究和概括總結(jié)的過程。簡單來說就是從原始數(shù)據(jù)中抽取信息的過程就是數(shù)據(jù)分析。數(shù)據(jù)分析的目的正是抽取不易推斷的信息,而一旦理解了這些信息,就能對產(chǎn)生數(shù)據(jù)的系統(tǒng)的運(yùn)行機(jī)制進(jìn)行研究,從而對系統(tǒng)可能的響應(yīng)和演變做出科學(xué)預(yù)測。

數(shù)據(jù)分析最初用作數(shù)據(jù)保護(hù),現(xiàn)已發(fā)展成為數(shù)據(jù)建模的方法論。模型實(shí)際上是指將所研究的系統(tǒng)轉(zhuǎn)化為數(shù)學(xué)形式,一旦建立數(shù)學(xué)或邏輯模型,對系統(tǒng)的響應(yīng)能做出不同精度的預(yù)測,就可以預(yù)測在給定輸入的情況下,系統(tǒng)會給出怎樣的輸出。這樣看,數(shù)據(jù)分析的目標(biāo)不止于建模,更重要的是其預(yù)測能力。1.1數(shù)據(jù)分析

數(shù)據(jù)分析有狹義和廣義之分。我們常說的數(shù)據(jù)分析就是指狹義的數(shù)據(jù)分析,狹義的數(shù)據(jù)分析是指根據(jù)分析目的,采用對比分析、分組分析、交叉分析和回歸分析等常用分析方法,對收集來的數(shù)據(jù)進(jìn)行處理與分析,提取有價(jià)值的信息,發(fā)揮數(shù)據(jù)的作用,并得到一個(gè)特征統(tǒng)計(jì)量結(jié)果的過程。廣義的數(shù)據(jù)分析包括狹義的數(shù)據(jù)分析和數(shù)據(jù)挖掘。數(shù)據(jù)挖掘是指從大量的、不完全的、有噪聲的、模糊的和隨機(jī)的實(shí)際應(yīng)用數(shù)據(jù)中,通過應(yīng)用聚類、分類、回歸和關(guān)聯(lián)規(guī)則等技術(shù),挖掘潛在價(jià)值的過程。因此,廣義數(shù)據(jù)分析可以定義為針對搜集來的數(shù)據(jù)運(yùn)用基礎(chǔ)探索、統(tǒng)計(jì)分析、深層挖掘等方法,發(fā)現(xiàn)數(shù)據(jù)中有用的信息和未知的規(guī)律與模式,進(jìn)而為下一步的業(yè)務(wù)決策提供理論與實(shí)踐依據(jù)。

廣義數(shù)據(jù)分析主要包括的內(nèi)容如圖1-1所示。1.1數(shù)據(jù)分析圖1-1廣義數(shù)據(jù)分析的主要內(nèi)容1.2數(shù)據(jù)可視化

數(shù)據(jù)可視化是數(shù)據(jù)分析和數(shù)據(jù)科學(xué)的關(guān)鍵技術(shù)之一。它將數(shù)據(jù)或信息編碼為圖形或圖像,允許使用圖形圖像處理、計(jì)算機(jī)視覺以及用戶界面,通過表達(dá)、建模以及對立體、表面、屬性和動畫的顯示,對數(shù)據(jù)加以可視化解釋。簡單地說,數(shù)據(jù)可視化就是借助圖形化的手段將組數(shù)據(jù)以圖形的形式表示,讓決策者可以通過圖形直觀地看到數(shù)據(jù)分析結(jié)果,從而更容易理解業(yè)務(wù)變化趨勢或發(fā)現(xiàn)新的業(yè)務(wù)模式。也可以這么說數(shù)據(jù)可視化其實(shí)就是將一個(gè)不易描述的事物形成一個(gè)可感知畫面的過程,即從數(shù)據(jù)空間到圖形空間的映射,數(shù)據(jù)可視化的過程如圖1-2所示。1.2數(shù)據(jù)可視化圖1-2數(shù)據(jù)可視化的過程

數(shù)據(jù)可視化可以創(chuàng)建出似乎沒有任何聯(lián)系的數(shù)據(jù)點(diǎn)之間的連接,讓人們能夠分辨出有用的和沒用的數(shù)據(jù)。無論原始數(shù)據(jù)被映射為哪種圖形數(shù)據(jù),最終要達(dá)到的目的只有一個(gè)準(zhǔn)確、高效、全面地傳遞信息,進(jìn)而建立起數(shù)據(jù)間的關(guān)系,使人們發(fā)現(xiàn)數(shù)據(jù)間的規(guī)律和特征,并挖掘出有價(jià)值的信息,從而提高數(shù)據(jù)溝通的效率。1.2數(shù)據(jù)可視化

數(shù)據(jù)可視化通過對數(shù)據(jù)不斷地觀察、分析、從而發(fā)現(xiàn)有用的信息模式。所以,只要建立數(shù)據(jù)和現(xiàn)實(shí)世界的聯(lián)系,計(jì)算機(jī)技術(shù)便可以把數(shù)據(jù)或數(shù)據(jù)分析結(jié)果批量轉(zhuǎn)換成不同的形狀和顏色,通過圖表表達(dá)有價(jià)值的信息。換言之,數(shù)據(jù)可視化能實(shí)現(xiàn)讓“數(shù)據(jù)說話”的目的。

數(shù)據(jù)可視化是數(shù)據(jù)分析工作中重要的一環(huán),對數(shù)據(jù)潛在價(jià)值的挖掘有著深遠(yuǎn)的影響。在大數(shù)據(jù)和人工智能時(shí)代,可視化與可視分析是人類理解數(shù)據(jù)的導(dǎo)航儀,隨著數(shù)據(jù)可視化平臺的拓展、表現(xiàn)形式的變化,以及實(shí)時(shí)動態(tài)效果、用戶交互使用等功能的增加,數(shù)據(jù)可視化的內(nèi)涵正在不斷擴(kuò)大,對數(shù)據(jù)理解與分析的效率也在不斷提高,相信數(shù)據(jù)可視化的應(yīng)用領(lǐng)域會越來越廣泛。1.3數(shù)據(jù)分析的流程

現(xiàn)如今數(shù)據(jù)分析已經(jīng)演化為一種解決問題的過程,甚至是一種方法論。雖然每個(gè)公司或單位都會根據(jù)自身需求和目標(biāo)創(chuàng)建最適合的數(shù)據(jù)分析流程,但數(shù)據(jù)分析的核心步驟是一致的。一個(gè)典型的數(shù)據(jù)分析流程如圖1-3所示。圖1-3典型的數(shù)據(jù)分析流程1.3數(shù)據(jù)分析的流程1.需求分析

需求分析一詞來源于產(chǎn)品設(shè)計(jì),主要是指從用戶提出的需求出發(fā),挖掘用戶內(nèi)心的真實(shí)意圖,并轉(zhuǎn)化為產(chǎn)品需求的過程。產(chǎn)品設(shè)計(jì)的第一步就是需求分析,也是最關(guān)鍵的一步,因?yàn)樾枨蠓治鰶Q定了產(chǎn)品方向。同理,需求分析也是數(shù)據(jù)分析環(huán)節(jié)的第一步和最為重要步驟之一,決定了后續(xù)的分析的方向、方法。2.數(shù)據(jù)獲取

數(shù)據(jù)是數(shù)據(jù)分析工作的基礎(chǔ),是指根據(jù)需求分析的結(jié)果提取,收集數(shù)據(jù)。數(shù)據(jù)獲取主要有兩種方式:網(wǎng)絡(luò)數(shù)據(jù)與本地?cái)?shù)據(jù)。在數(shù)據(jù)分析過程中,具體使用哪種數(shù)據(jù)獲取方式,依據(jù)需求分析的結(jié)果而定。1.3數(shù)據(jù)分析的流程3.數(shù)據(jù)預(yù)處理

數(shù)據(jù)預(yù)處理是指對數(shù)據(jù)進(jìn)行數(shù)據(jù)合并,數(shù)據(jù)清洗,數(shù)據(jù)變換和數(shù)據(jù)標(biāo)準(zhǔn)化,數(shù)據(jù)變換后使得整體數(shù)據(jù)變?yōu)楦蓛粽R,可以直接用于分析建模這一過程的總稱。在數(shù)據(jù)分析過程中,數(shù)據(jù)預(yù)處理的各個(gè)過程互相交叉,無明確先后順序之分。4.分析與建模

分析與建模是指通過對比分析、分組分析、交叉分析、回歸分析等分析方法和聚類、分類、關(guān)聯(lián)規(guī)則、智能推薦等模型與算法發(fā)現(xiàn)數(shù)據(jù)中有價(jià)值信息,并得出結(jié)論的過程。1.3數(shù)據(jù)分析的流程5.模型評價(jià)與優(yōu)化

模型評價(jià)是指對已經(jīng)建立的一個(gè)或多個(gè)模型,根據(jù)其模型的類別,使用不同的指標(biāo)評價(jià)其性能優(yōu)劣的過程。模型優(yōu)化則是指模型性能在經(jīng)過模型評價(jià)后已經(jīng)達(dá)到了要求,但在實(shí)際生產(chǎn)環(huán)境應(yīng)用過程中,發(fā)現(xiàn)模型的性能并不理想,繼而對模型進(jìn)行重構(gòu)與優(yōu)化的過程。6.部署

部署是指將通過了正式應(yīng)用數(shù)據(jù)分析結(jié)果與結(jié)論應(yīng)用至實(shí)際生產(chǎn)系統(tǒng)的過程。根據(jù)需求不同,部署階段可以是一份包含了現(xiàn)狀具體整改措施的數(shù)據(jù)分析報(bào)告,也可以是將模型部署在整個(gè)生產(chǎn)系統(tǒng)的解決方案。1.4數(shù)據(jù)分析與可視化常用工具1.MicrosoftExcel2.Python語言3.R語言4.MATLAB軟件5.SPSS軟件6.SASEnterprisesMiner7.專用可視化分析工具:PowerBI、FineBI、Tableau、Echarts和Gephi等1.5Python數(shù)據(jù)分析與可視化常用類庫1.NumPy2.SciPy3.Pandas4.Matplotlib5.Scikit-learn6.Seaborn7.Pyecharts1.6為何選用Python進(jìn)行數(shù)據(jù)分析與可視化1.爬取數(shù)據(jù)需要PythonPython是目前最流行的網(wǎng)絡(luò)爬蟲語言。它擁有許多支持?jǐn)?shù)據(jù)爬取的第三方庫,如requests、BeautifulSoup、selenium,以及功能非常強(qiáng)大、免費(fèi)、開源、跨平臺的網(wǎng)絡(luò)爬蟲框架Scrapy。Scrapy是一個(gè)快速、高層次的屏幕抓取和Web抓取框架,用于抓取Web站點(diǎn)并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù)。使用Python可以爬取互聯(lián)網(wǎng)上公布的大部分?jǐn)?shù)據(jù)。2.數(shù)據(jù)分析需要Python

數(shù)據(jù)獲取之后,還要對數(shù)據(jù)進(jìn)行清洗和預(yù)處理,清洗完成后還要進(jìn)行數(shù)據(jù)分析和可視化。Python提供了大量第三方數(shù)據(jù)分析庫,包括NumPy、Pandas、Matplotlib;可進(jìn)行科學(xué)計(jì)算、Web開發(fā)、數(shù)據(jù)接口、圖形繪制等眾多工作;開發(fā)的代碼通過封裝,也可以作為第三方模塊供他人使用。1.6為何選用Python進(jìn)行數(shù)據(jù)分析與可視化

3.Python語言簡單高效Python語言語法簡潔,易學(xué)易用,代碼可移植性好,程序可讀性強(qiáng)。這些特點(diǎn)讓數(shù)據(jù)分析師有能力掙脫程序本身語法規(guī)則的束縛,更快地進(jìn)行數(shù)據(jù)分析;此外,Python解釋器還提供了大量內(nèi)置庫和函數(shù)庫,開源社區(qū)的程序員們還在源源不斷地貢獻(xiàn)第三方函數(shù)庫,幾乎覆蓋了計(jì)算機(jī)應(yīng)用的各個(gè)領(lǐng)域。因此,Python語言被形象地比喻為“內(nèi)置電池”。1.7安裝和使用面向科學(xué)計(jì)算的Anaconda

Anaconda指的是一個(gè)開源的Python發(fā)行版本,預(yù)裝了包含了conda、Python等180多個(gè)科學(xué)包及其依賴項(xiàng),囊括了數(shù)據(jù)分析常用的NumPy、SciPy、Matplotlib、Scikit-learn、Pandas和IPython庫。因?yàn)轭A(yù)安裝了大量的科學(xué)包,使用Anaconda時(shí)無需再花費(fèi)大量時(shí)間安裝眾多的第三方Python包,只需專注地使用Python解決數(shù)據(jù)分析相關(guān)問題。

如果計(jì)算機(jī)上已經(jīng)安裝了Python,安裝Anaconda不會有任何影響。實(shí)際上,腳本和程序使用的默認(rèn)Python是Anaconda附帶的Python。1.7.1下載和安裝Anaconda應(yīng)用程序(1)Anaconda是跨平臺的,打開Anaconda官方網(wǎng)站,發(fā)現(xiàn)有Windows、MacOS、Linux三種版本可供下載,我們這里以Windows版本為例,如圖1-4所示。圖1-4下載Anaconda1.7.1下載和安裝Anaconda應(yīng)用程序(2)下載Anaconda安裝程序。單擊圖1-4中的(Download+Win圖標(biāo))超鏈接,可下載目前最新版本的Windows版本安裝程序。(3)以管理員身份運(yùn)行Anaconda安裝程序。鼠標(biāo)右擊Anaconda3-XXX.exe,選擇“以管理員身份運(yùn)行”,打開安裝程序向?qū)А#?)安裝Anaconda應(yīng)用程序。在“用戶賬戶控制”對話框中,單擊“是”按鈕。然后根據(jù)安裝向?qū)?,按照默認(rèn)選項(xiàng),安裝Anaconda應(yīng)用程序。安裝好Anaconda應(yīng)用程序之后,Windows開始菜單包括如圖1-5所示的菜單。圖1-5安裝好Anaconda之后的Windows開始菜單1.7.2使用conda安裝和管理Anacondaconda是一個(gè)開源的包、環(huán)境管理器,可以用于在同一個(gè)機(jī)器上安裝不同版本的軟件包及其依賴,并能夠在不同的環(huán)境之間切換。Anaconda中包含了環(huán)境管理器和包管理器conda,可以方便在計(jì)算機(jī)上為不同的項(xiàng)目建立不同的運(yùn)行環(huán)境(環(huán)境是特定Python版本及相關(guān)版本包的集合),以及管理特定環(huán)境下的包(包括安裝、卸載和更新包)。

命令行的基本語法請參考教材介紹,此處略。1.8掌握J(rèn)upyterNotebook的基本功能1.啟動JupyterNotebook

方法一:安裝完Anaconda之后,在Windows開始菜單中找到Anaconda3目錄中的AnacondaPrompt或在Windows系統(tǒng)的CMD窗口中輸入命令“jupyternotebook”,即可啟動JupyterNotebook,如圖1-6所示。啟動后的CMD窗口為JupyterNotebook后臺運(yùn)行進(jìn)程,不要關(guān)閉。圖1-6啟動JupyterNotebook1.8掌握J(rèn)upyterNotebook的基本功能

方法二:

在Windows開始菜單中找到Anaconda3目錄下的JupyterNotebook選項(xiàng),即可快速啟動JupyterNotebook,啟動后的操作過程同方法一。

方法三:

在Windows開始菜單中找到Anaconda3目錄下的AnacondaNavigator選項(xiàng),打開Anaconda軟件程序選擇界面,如圖1-7所示。在界面中找到JupyterNotebook欄框,單擊下面的“Launch”按鈕即可啟動JupyterNotebook。1.8掌握J(rèn)upyterNotebook的基本功能圖1-7AnacondaNavigator啟動后的界面1.8.2新建一個(gè)Notebook

打開JupyterNotebook后會在系統(tǒng)默認(rèn)的瀏覽器中出現(xiàn)圖1-8所示的界面。單擊右上方的“New”下拉按鈕,出現(xiàn)下拉列表,如圖1-9所示。圖1-8JupyterNotebook主頁圖1-9New下拉列表1.8.2新建一個(gè)Notebook

在下拉列表中選擇需要?jiǎng)?chuàng)建的Notebook類型。其中,“Python3”表示Python運(yùn)行腳本,“TextFile”為純文本型,“Folder”為文件夾,灰色字體表示不可用項(xiàng)目。選擇“Python3”選項(xiàng),進(jìn)入Python腳本編輯界面,如圖1-10所示。圖1-10JupyterNotebookPython3腳本編輯界面

若要重新命名Notebook標(biāo)題,可選擇File|Rename,輸入新的名稱,更改后的名字就會出現(xiàn)在Jupyter圖標(biāo)的右側(cè)。1.8.3JupyterNotebook的界面及其構(gòu)成

Notebook文檔由一系列單元(Cell)構(gòu)成,主要有兩種形式,一種是代碼單元,另一種是Markdown單元。代碼單元是編寫代碼的地方,通過按“Ctrl+Enter”或“Shift+Enter”組合鍵運(yùn)行代碼,運(yùn)行結(jié)果顯示在本單元下方。每個(gè)單元左邊有“In[]:”編號,方便使用者查看代碼的執(zhí)行次序。Markdown單元主要用于對文本進(jìn)行編輯,采用Markdown的語法規(guī)范,可以設(shè)置文本格式、插入鏈接、圖片甚至數(shù)學(xué)公式。同樣,按“Ctrl+Enter”或“Shift+Enter”組合鍵可運(yùn)行Markdown單元,顯示格式化后的文本。

JupyterNotebook有兩種模式,一種是編輯模式,一種是命令模式。當(dāng)最左側(cè)單元框線為綠色時(shí),則該單元正處于編輯狀態(tài)下,此時(shí)可用于編輯文本和代碼。當(dāng)最左側(cè)單元框線為藍(lán)色時(shí),則該單元正處于命令模式下,用于執(zhí)行鍵盤輸入的快捷命令??赏ㄟ^按鍵盤左上角的“Esc”鍵快速進(jìn)入到命令模式。例如,在命令模式下,在當(dāng)前單元的上方增加一單元按“A”鍵,在當(dāng)前單元的下方增加一單元按“B”鍵。1.8.4Tab鍵補(bǔ)全

在IDE或交互式環(huán)境中提供了Tab鍵補(bǔ)全功能。當(dāng)在命令模式下的單元輸入庫函數(shù)或表達(dá)式時(shí),按下Tab鍵可以為任意變量(對象、函數(shù)等)搜索命名空間,與當(dāng)前已輸入的字符進(jìn)行匹配。如圖1-11所示。圖1-11代碼補(bǔ)全提示1.8.5JupyterNotebook常用快捷鍵表1-1JupyterNotebook中常用的快捷鍵及其功能模式快捷鍵描述不分模式Ctrl+Enter運(yùn)行當(dāng)前單元代碼Shift+Enter運(yùn)行當(dāng)前單元代碼并指向下一個(gè)單元Alt+Enter運(yùn)行當(dāng)前單元代碼并在下方插入新單元編輯模式Tab代碼補(bǔ)全Ctrl+/注釋命令模式Shift+上下鍵按住Shift進(jìn)行上下鍵操作可復(fù)選多個(gè)單元Shift+L為所有單元的代碼添加行編號Shift+M合并所選單元或合并當(dāng)前單元和下方的單元A在上方新建一個(gè)單元B在下方新建一個(gè)單元Y把當(dāng)前單元內(nèi)容轉(zhuǎn)換為代碼形式M把當(dāng)前單元內(nèi)容轉(zhuǎn)換為Markdown形式雙擊D刪除當(dāng)前單元Z撤銷已刪除的單元S保存當(dāng)前NotebookH查看所有的快捷鍵1.9掌握J(rèn)upyterNotebook的高級功能1.MarkdownMarkdown語言是由約翰·格魯伯(JohnGruber)在2004年創(chuàng)建的,它是一種輕量級標(biāo)記語言,允許人們使用易讀易寫的純文本格式編寫文檔。Markdown編寫的文檔可以導(dǎo)出HTML、Word、圖像、PDF等多種格式的文檔。

由于Markdown的輕量化、易讀易寫特性,并且對于圖片、表格、超鏈接以及數(shù)學(xué)公式都有支持,許多網(wǎng)站都廣泛使用Markdown來撰寫幫助文檔或是用于論壇上發(fā)表消息。如GitHub、Reddit、Diaspora、StackExchange、OpenStreetMap、SourceForge和簡書等,甚至還能被使用來撰寫電子書。1.9掌握J(rèn)upyterNotebook的高級功能

1.Markdown(1)標(biāo)題(2)列表(3)字體格式(4)繪制表格(5)超鏈接(6)插入圖片(7)數(shù)學(xué)公式

$E=mc^2$1.9.2導(dǎo)出功能

Notebook還有一個(gè)強(qiáng)大的特性,就是其導(dǎo)出功能。可以將Notebook導(dǎo)出為多種格式,如HTML、Markdown、PDF(通過LaTeX)、reST、Python等格式。其中,導(dǎo)出PDF功能,可以讓你不用寫LaTex即可創(chuàng)建漂亮的PDF文檔。你還可以將Notebook作為網(wǎng)頁發(fā)布在你的網(wǎng)站上。甚至,你可以導(dǎo)出為reST格式,作為軟件庫的文檔。Notebook導(dǎo)出功能可通過選擇“File”-->“Downloadas”級聯(lián)菜單中的命令實(shí)現(xiàn),如圖1-25所示。圖1-25Notebook導(dǎo)出功能級聯(lián)菜單1.9.2快速導(dǎo)出閱讀式PDF文件

JupyterNotebook默認(rèn)保存的文件格式為.ipynb,但是原文件只能在JupyterNotebook環(huán)境下打開,為了方便平時(shí)的閱讀的文件打印,我們可以將.ipynb文件另存為.pdf格式文件。方法是在Web端按下“Ctrl+P”組合鍵,彈出打印窗口,找到“目標(biāo)打印機(jī)”下拉欄目中“另存為PDF”,點(diǎn)擊“保存”按鍵即可存為PDF文檔,如圖1-26所示。圖1-26導(dǎo)出閱讀式PDF文件本章小結(jié)

本章是對數(shù)據(jù)分析和可視化的理論及意義、常用庫及工具進(jìn)行了概述。主要介紹了數(shù)據(jù)分析及可視化的概念,數(shù)據(jù)分析的基本流程,闡述了使用Python進(jìn)行數(shù)據(jù)分析與可視化的優(yōu)勢,介紹了如何在Windows系統(tǒng)下下載、安裝和使用面向科學(xué)計(jì)算的Anaconda,以及使用conda安裝和管理Anaconda,簡要介紹了啟動JupyterNotebook的三種方法,重點(diǎn)介紹了Notebook的基本功能及高級功能的使用方法及展示效果,最后介紹使用Notebook導(dǎo)出文件或程序的方法。單項(xiàng)選擇題簡答題多選題操作題本章習(xí)題感謝您的觀看

第2章Python語言編程基礎(chǔ)Python數(shù)據(jù)分析與可視化學(xué)習(xí)目標(biāo)熟悉Python語言的基本語法規(guī)則;熟悉Python基本數(shù)據(jù)類型;掌握數(shù)據(jù)格式化操作方法;掌握Python組合數(shù)據(jù)類型;熟練掌握Python推導(dǎo)式;掌握函數(shù)定義及匿名函數(shù)的基本使用方法。

任務(wù)二:Python應(yīng)用基礎(chǔ)2.1Python基本語法2.2基本數(shù)據(jù)類型2.3組合數(shù)據(jù)類型2.4Python推導(dǎo)式2.5函數(shù)目錄CONTENTS2.1Python基本語法Python最具編程特色就是采用嚴(yán)格的“縮進(jìn)”格式來表示程序邏輯和代碼塊,縮進(jìn)的空格數(shù)是可變的,但是一個(gè)代碼塊的語句必須包含相同的縮進(jìn)空格數(shù)。編程中,代碼縮進(jìn)除了可用多個(gè)空格實(shí)現(xiàn)(建議用4個(gè)空格方式書寫代碼),也可以用Tab鍵實(shí)現(xiàn),但要注意Tab鍵和空格不可混和使用。

一般來說,在編寫代碼時(shí)盡量不要使用過長的語句,盡量保證一行代碼不超過屏幕寬度,超出部分使用續(xù)行符“\”(反斜杠)表示,使用續(xù)行符后要注意“\”后不能再有空格且必須直接換行。另外,Python代碼中有兩種常用的注釋形式,即“#”號和三引號。使用“#”進(jìn)行單行注釋,連續(xù)使用多個(gè)“#”可實(shí)現(xiàn)多行注釋;如果是大段多行說明性文本,則常使用三引號注釋。2.1Python基本語法1.變量與賦值

變量是保存和表示數(shù)據(jù)值的一種語法元素,在程序中十分常見。顧名思義,變量的值是可以改變的,能夠通過賦值(使用等號=表達(dá))方式被修改。

賦值語句并不會復(fù)制指向的值,而只是標(biāo)記和重新標(biāo)記既有值。因此,無論變量指向的對象有多大,多復(fù)雜,賦值語句的效率都非常高。2.1Python基本語法2.命名

給變量或其他程序元素關(guān)聯(lián)名稱或標(biāo)識符的過程稱為命名。一般地,函數(shù)命名用小寫字母,類命名用駝峰命名法。其命名規(guī)則如下:

(1)變量名的長度不受限制,但其中的字符必須是字母、數(shù)字、下劃線(_)和漢字等字符及其組合給變量命名,而不能使用空格、連字符、標(biāo)點(diǎn)符號、引號或其他字符。

(2)變量名的第一個(gè)字符不能是數(shù)字,而必須是字母或下劃線。

(3)Python區(qū)分大小寫,例如,python和Python是兩個(gè)不同的名字。

(4)標(biāo)識符名字不能與Python保留字相同。2.1Python基本語法3.保留字

保留字,也稱為關(guān)鍵字,指被編程語言內(nèi)部定義并保留使用的標(biāo)識符。程序員編寫程序不能定義與保留字相同的標(biāo)識符。每種程序設(shè)計(jì)語言都有一套保留字,保留字一般用來構(gòu)成程序整體框架、表達(dá)關(guān)鍵值和具有結(jié)構(gòu)性的復(fù)雜語義等。表2-1Python的36個(gè)保留字列表2.2基本數(shù)據(jù)類型Python中有六種標(biāo)準(zhǔn)的數(shù)據(jù)類型,分別為數(shù)字(Number)、字符串(String)、列表(List)、元組(Tuple)、集合(Set)和字典(Dictionary)。其中,數(shù)字、字符串和元組為不可變數(shù)據(jù)類型;列表、集合和字典為可變數(shù)據(jù)類型。1.數(shù)字類型

表示數(shù)字或數(shù)值的數(shù)據(jù)類型稱為數(shù)字類型,Python語言提供3種數(shù)字類型:整數(shù)、浮點(diǎn)數(shù)和復(fù)數(shù),分別對應(yīng)數(shù)學(xué)中的整數(shù)、實(shí)數(shù)和復(fù)數(shù)。

(1)整數(shù):一個(gè)整數(shù)值可以表示為十進(jìn)制、十六進(jìn)制、八進(jìn)制和二進(jìn)制等不同進(jìn)制形式。

(2)浮點(diǎn)數(shù):一個(gè)浮點(diǎn)數(shù)可以表示為帶有小數(shù)點(diǎn)的一般形式,也可以采用科學(xué)計(jì)數(shù)法表示。

(3)復(fù)數(shù):復(fù)數(shù)類型與數(shù)學(xué)中的復(fù)數(shù)相一致,采用a+bj的形式表示,存在實(shí)部和虛部。2.2基本數(shù)據(jù)類型2.字符串類型

字符串被定義為引號之間的字符集合。在Python語言中,字符串采用一對單引號(')、雙引號(")或三引號(''')括起來。其中,單引號和雙引號作用相同,用于單行字符串;而多行字符串則使用三引號作為邊界來表示。

作為字符序列,字符串可以對其中單個(gè)字符或字符片段進(jìn)行索引。字符串包括兩種序號體序:正向遞增序號和反向遞減序號,如圖2-1所示。圖2-1Python字符串的兩種序號體序2.2基本數(shù)據(jù)類型

當(dāng)Python字符串中出現(xiàn)反斜杠(轉(zhuǎn)義符)時(shí),我們要注意其語義的變化,一般表示一個(gè)轉(zhuǎn)義序列的開始,是指那些字符串中存在有特殊含義的字符。表2-2列出了常用的五種轉(zhuǎn)義字符。表2-2常用的五種轉(zhuǎn)義字符和說明轉(zhuǎn)義字符描述\n換行\(zhòng)r回車\\反斜杠符號\"雙引號\t制表符注意:Python允許使用r""的方式表示引號內(nèi)部的字符串,默認(rèn)不轉(zhuǎn)義。2.2基本數(shù)據(jù)類型

(1)字符串格式化

在字符串中整合變量時(shí)需要使用字符串的格式化方法,用于解決字符串和變量同時(shí)輸出時(shí)的格式安排問題。Python語言推薦使用.format()格式化方法。

格式如下:<模板字符串>.format(<逗號分隔的參數(shù)>)

模板字符串是一個(gè)由字符串和槽(用{}表示)組成的字符串,用來控制字符串和變量的顯示結(jié)果。2.2基本數(shù)據(jù)類型方法一:In[1]:SWIT="ShanWeiInstituteofTechnology"print('的英文是{}'.format(SWIT))Out[1]:的英文是ShanWeiInstituteofTechnology方法二:In[2]:SWIT="ShanWeiInstituteofTechnology"print('的英文是%s'%SWIT)Out[2]:的英文是ShanWeiInstituteofTechnology方法三:In[3]:SWIT="ShanWeiInstituteofTechnology"print(f'的英文是{SWIT}')Out[3]:的英文是ShanWeiInstituteofTechnology2.2基本數(shù)據(jù)類型

當(dāng)有多個(gè)參數(shù)時(shí),同樣也可用上述方法呈現(xiàn),這里我們使用Python推薦的格式化方法,f格式化或format格式化。In[4]:SW="汕尾"SWIT="ShanWeiInstituteofTechnology"print(f'{SW}職業(yè)技術(shù)學(xué)院的英文是{SWIT}')print('{}職業(yè)技術(shù)學(xué)院的英文是{}'.format(SW,SWIT))Out[4]:的英文是ShanWeiInstituteofTechnology

的英文是ShanWeiInstituteofTechnologyIn[5]:print('{1}職業(yè)技術(shù)學(xué)院的英文是{0}'.format(SWIT,SW))Out[5]:的英文是ShanWeiInstituteofTechnology2.2基本數(shù)據(jù)類型(2)format()方法的格式控制。format()方法的槽除了包括參數(shù)序號,還包括了格式控制信息,格式如下:{<參數(shù)序號>:<格式控制標(biāo)記>}格式控制標(biāo)記用來控制參數(shù)顯示時(shí)的格式,格式如表2-3所列。表2-3槽中格式控制標(biāo)記的字段2.2基本數(shù)據(jù)類型(3)字符串操作。針對字符串,Python語言提供了3種基本操作符,如表2-4所示。表2-4操作符及描述2.2基本數(shù)據(jù)類型

字符串子串還可以用分離操作符([]或[:]或[::])選取,對子串或區(qū)間的檢索稱為切片。切片的格式如下:

<字符串或字符串變量>[N:M:S]

切片獲取字符串從N到M(不包含M)的子串,其中,N和M為字符串的索引序號,可以混合使用正向遞增和反向遞減序號。如果N缺失,則默認(rèn)為0;如果M缺失,則默認(rèn)到字符串結(jié)尾。S為步長,表示隔多少個(gè)元素取一次。步長是正數(shù),從左往右?。徊介L是負(fù)數(shù),從右往左取。如果S缺失,則默認(rèn)為1。2.3組合數(shù)據(jù)類型Python語言中最常用的組合數(shù)據(jù)類型有3大類,分別是序列類型、集合類型和映射類型。序列類型是一個(gè)元素向量,元素之間存在先后關(guān)系,通過序號訪問,元素之間不排他。序列類型的典型代表是字符串類型和列表類型。集合類型是一個(gè)元素集合,元素之間無序,相同元素在集合中唯一存在。映射類型是“鍵-值”數(shù)據(jù)項(xiàng)的組合,每個(gè)元素是一個(gè)鍵值對,表示為(key,value)。映射類型的典型代表是字典類型。Python組合數(shù)據(jù)類型如圖2-2所示。2.3.1列表

列表是包含0個(gè)或多個(gè)元組組成的有序序列,屬于序列類型。列表可以對元素進(jìn)行增加、刪除、替換、查找等操作。列表和字符串不同之處在于,列表具有可變長度、異構(gòu)以及任意嵌套列表的特點(diǎn)。

列表類型用中括號([])表示,也可以通過list(x)函數(shù)將集合或字符串類型轉(zhuǎn)換成列表類型。列表是可變對象,支持在原處修改。2.3.2元組Python的元組與列表類似,下標(biāo)索引從0開始,可以進(jìn)行截取,組合等。不同之處在于元組的元素不能修改,元組使用小括號(),列表使用方括號[]。元組創(chuàng)建很簡單,只需要在括號中添加元素,并使用逗號隔開即可。元組用途很多,例如坐標(biāo)系(x,y,z)以及存放于數(shù)據(jù)庫中不可修改的記錄等等。

此外,如果元組中只包含一個(gè)元素時(shí),需要在元素后面添加逗號,否則括號會被當(dāng)作運(yùn)算符使用。2.3.3字典

字典是另一種可變?nèi)萜髂P停铱纱鎯θ我忸愋蛯ο?。字典又叫“鍵值對”,鍵值對是組織數(shù)據(jù)的一種重要方式,廣泛應(yīng)用在Web系統(tǒng)中。鍵值對的基本思想是將“值”信息關(guān)聯(lián)一個(gè)“鍵”信息,進(jìn)而通過鍵信息查找對應(yīng)值信息,這個(gè)過程叫映射。Python語言中通過字典類型實(shí)現(xiàn)映射。

字典的每個(gè)鍵值對(k,v)用冒號(:)隔開,每個(gè)對之間用逗號(,)分割,整個(gè)字典置于花括號{}中。鍵必須獨(dú)一無二,值可以取任何數(shù)據(jù)類型,但必須是不可變的,如字符串,數(shù)或元組。

格式為:d={key1:value1,key2:value2,key3:value3}2.3.3字典

字典類型和集合類似,即鍵值對之間沒有順序且不能重復(fù)。此外,由于dict作為Python的關(guān)鍵字和內(nèi)置函數(shù),不建議使用dict作為變量名。表2-5中列出了字典類型的一些常用操作方法,使用d代表字典變量。表2-5字典的一些常用操作方法及描述2.3.4集合

集合是一個(gè)無序的且不重復(fù)的元素序列??梢允褂么罄ㄌ杮}或者set()函數(shù)創(chuàng)建集合,注意:創(chuàng)建一個(gè)空集合必須用set()而不是{},因?yàn)閧}是用來創(chuàng)建一個(gè)空字典。集合支持用in和notin操作符檢查成員,由len()內(nèi)建函數(shù)得到集合的基數(shù)(大小),用for循環(huán)迭代集合的成員。但是因?yàn)榧媳旧硎菬o序的,不可以為集合創(chuàng)建索引或執(zhí)行切片操作。

集合和字典一樣,只是沒有value,相當(dāng)于字典的key集合。由于集合具有不重復(fù)性,常用于做數(shù)據(jù)去重任務(wù);此外,集合元素為不可變對象,因此,列表和字典是不能作為集合的元素的。表2-6為集合常用的內(nèi)置方法。表2-6集合常用內(nèi)置方法2.4Python推導(dǎo)式Python推導(dǎo)式是一種獨(dú)特的數(shù)據(jù)處理方式,可以從一個(gè)數(shù)據(jù)序列構(gòu)建另一個(gè)新的數(shù)據(jù)序列的結(jié)構(gòu)體。Python支持多種數(shù)據(jù)結(jié)構(gòu)的推導(dǎo)式,主要有:列表推導(dǎo)式元組推導(dǎo)式字典推導(dǎo)式集合推導(dǎo)式2.4.1列表推導(dǎo)式

列表推導(dǎo)式又稱列表解析式,提供了一種簡明扼要的方法來創(chuàng)建列表。它的結(jié)構(gòu)是在一個(gè)方括號[]里包含一個(gè)表達(dá)式,然后是一個(gè)for語句,某些情況下還有if語句。列表推導(dǎo)式的基本語法格式如下:

[表達(dá)式for變量in列表]

或者

[表達(dá)式for變量in列表if條件]

其中,表達(dá)式:列表生成元素表達(dá)式,可以是有返回值的函數(shù)。for變量in列表:迭代列表將變量傳到輸出的表達(dá)式中。if條件:條件語句,可以過濾列表中不符合條件的值。2.4.2元組推導(dǎo)式

元組推導(dǎo)式和列表推導(dǎo)式的用法也完全相同,只是元組推導(dǎo)式是用小括號()將各部分括起來,而列表推導(dǎo)式用的是方括號[],另外元組推導(dǎo)式返回的結(jié)果是一個(gè)生成器對象。

元組推導(dǎo)式的基本語法格式如下:

(表達(dá)式for變量in序列)

或者

(表達(dá)式for變量in序列if條件)2.4.3字典推導(dǎo)式

字典推導(dǎo)式可以針對字典執(zhí)行一個(gè)for循環(huán),對每個(gè)元素執(zhí)行某些操作(例如變換或者過濾),然后返回一個(gè)新的字典。與for循環(huán)不同,字典推導(dǎo)式提供了一個(gè)更具表達(dá)能力和簡潔性的語法。

字典推導(dǎo)式的基本語法格式如下:

{key:valuefor(key,value)indict.items()}

或者

{key:valuefor(key,value)indict.items()ifcondition}2.4.4集合推導(dǎo)式

集合推導(dǎo)式跟列表推導(dǎo)式類似,唯一不同之處在于集合使用大括號{}。集合推導(dǎo)式的基本語法格式如下:

{表達(dá)式for變量in序列}

或者

{表達(dá)式for變量in序列if條件}2.5函數(shù)

函數(shù)是一段具有特定功能的、可重用的語句組,通過函數(shù)名來表示和調(diào)用。經(jīng)過定義,一組語句等價(jià)于一個(gè)函數(shù),在需要使用這組語句的地方,直接調(diào)用函數(shù)名稱即可。因此,函數(shù)的使用包括兩部分:函數(shù)的定義和函數(shù)的使用。

函數(shù)可以在一個(gè)程序中多個(gè)位置使用,也可以用于多個(gè)程序,當(dāng)需要對代碼進(jìn)行修改時(shí),只需要在函數(shù)中修改一次即可,所有調(diào)用位置的功能都會隨之更新。因此,編程時(shí)使用函數(shù)最大的優(yōu)點(diǎn)是增強(qiáng)了代碼的復(fù)用性和可讀性,同時(shí),還降低了代碼后期的維護(hù)難度。Python本身不僅提供了大量可直接調(diào)用的內(nèi)置函數(shù),還可以靈活的創(chuàng)建自定義函數(shù)。2.5.1函數(shù)的定義Python使用def保留字來定義函數(shù),基本語法格式如下:def函數(shù)名(參數(shù)列表):

函數(shù)體return返回值列表關(guān)于函數(shù)定義的說明:函數(shù)代碼塊以def保留字開頭,后接函數(shù)名和小括號()。函數(shù)名可以是任何有效的Python標(biāo)識符。任何傳入?yún)?shù)和自變量必須放在小括號內(nèi),小括號之間可以用于定義參數(shù)。當(dāng)傳遞多個(gè)參數(shù)時(shí)各參數(shù)之間用逗號分隔,沒有參數(shù)時(shí)也要保留小括號。函數(shù)內(nèi)容以冒號(:)起始,并且縮進(jìn)。函數(shù)體是函數(shù)每次被調(diào)用時(shí)執(zhí)行的代碼,由一行或多行語句組成。如果需要返回值,使用return和返回值列表來結(jié)束函數(shù)。如果不需要返回值,使用不帶表達(dá)式的return相當(dāng)于返回None。2.5.2匿名函數(shù)LambdaLambda是一種簡便的、在同一行中定義函數(shù)的方法,函數(shù)體比def定義的函數(shù)簡單很多。如果函數(shù)的形式比較簡單且只需要作為參數(shù)傳遞給其他函數(shù),則可使用Lambda表達(dá)式直接定義匿名函數(shù)。匿名函數(shù)廣泛用于需要函數(shù)對象作為參數(shù)、函數(shù)比較簡單且僅用一次的場合。Lambda函數(shù)擁有自己的命名空間,且不能訪問自有參數(shù)列表之外或全局命名空間中的參數(shù)。本章小結(jié)

本章介紹了Python語言編程基礎(chǔ)。簡要介紹了Python語言的基本語法規(guī)則、基本數(shù)據(jù)類型和數(shù)據(jù)格式化操作方法;概要性介紹了Python的組合數(shù)據(jù)類型,包括對列表、元組、字典和集合數(shù)據(jù)類型的實(shí)例解析;重點(diǎn)介紹了Python的四種推導(dǎo)式使用方法,以及如何構(gòu)建自定義函數(shù)和匿名函數(shù)Lambda的基本使用方法。單項(xiàng)選擇題簡答題判斷題操作題本章習(xí)題感謝您的觀看

第3章NumPy和Pandas基礎(chǔ)知識Python數(shù)據(jù)分析與可視化學(xué)習(xí)目標(biāo)掌握NumPy創(chuàng)建多維數(shù)組及數(shù)據(jù)類型轉(zhuǎn)換;掌握隨機(jī)數(shù)生成方法和數(shù)組變換;掌握NumPy數(shù)組切片和運(yùn)算方法;了解Pandas數(shù)據(jù)結(jié)構(gòu);掌握Series和DataFrame語法及基本操作;掌握DataFrame的合并、拼接和組合;掌握使用分組與聚合進(jìn)行組內(nèi)計(jì)算。任務(wù)三:數(shù)據(jù)分析常用庫介紹3.1NumPy數(shù)值計(jì)算基礎(chǔ)3.2Pandas統(tǒng)計(jì)分析基礎(chǔ)3.3分組與聚合目錄CONTENTSNumPy和Pandas概述NumPy(NumericalPython)是Python語言的一種開源的數(shù)值計(jì)算擴(kuò)展程序庫,支持大量的維度數(shù)組與矩陣運(yùn)算,此外也針對數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫。NumPy的前身為Numeric,2005年與另一個(gè)同性質(zhì)的程序庫Numarray相結(jié)合并加入了其它擴(kuò)展而開發(fā)的。NumPy通常與SciPy和Matplotlib一起組合使用,這種組合提供了與MatLab相似的功能與操作方式。因?yàn)閮烧呓詾榻忉屝驼Z言,并且都可以讓用戶在針對數(shù)組或矩陣運(yùn)算時(shí)提供較標(biāo)量運(yùn)算更快的性能。Pandas是Python語言的一個(gè)數(shù)據(jù)分析包,是基于NumPy的一種工具,該工具是為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。Pandas最初是被作為金融數(shù)據(jù)分析工具而開發(fā)出來,因此,Pandas為時(shí)間序列分析提供了很好的支持。Pandas的名稱來自于面板數(shù)據(jù)(Paneldata)和Python數(shù)據(jù)分析(dataanalysis)。Paneldata是經(jīng)濟(jì)學(xué)中關(guān)于多維數(shù)據(jù)集的一個(gè)術(shù)語,在Pandas中也提供了Panel的數(shù)據(jù)類型。3.1NumPy數(shù)值計(jì)算基礎(chǔ)

標(biāo)準(zhǔn)的Python用列表保存值,可以當(dāng)作數(shù)組使用,但由于列表中的元素可以是任何對象,浪費(fèi)了不少寶貴的計(jì)算資源與時(shí)間。NumPy的出現(xiàn)則彌補(bǔ)了這方面的不足,提供了ndarray和ufunc這兩種基本對象。其中,ndarray是多維數(shù)組,用于存儲單一數(shù)據(jù)類型;而ufunc則是一種能對數(shù)組進(jìn)行處理的函數(shù)。3.1.1NumPy多維數(shù)組NumPy的數(shù)據(jù)結(jié)構(gòu)是n維的數(shù)組對象,叫做ndarray,我們可以使用NumPy庫中的array函數(shù)來創(chuàng)建ndarray數(shù)組。ndarray是一個(gè)通用的同構(gòu)數(shù)據(jù)容器,要求容器內(nèi)的元素必須為同種數(shù)據(jù)類型,如數(shù)值型或字符型。此外,NumPy還能將多種數(shù)據(jù)類型轉(zhuǎn)換為ndarray數(shù)組。(1)加載Numpy模塊(2)使用array函數(shù)創(chuàng)建數(shù)組對象(3)使用dtype指定和查詢數(shù)據(jù)類型(4)使用astype轉(zhuǎn)換數(shù)據(jù)類型(5)使用arange函數(shù)創(chuàng)建數(shù)組(6)使用函數(shù)創(chuàng)建全0或全1矩陣(7)查看數(shù)組的屬性(8)使用reshape方法修改數(shù)組形狀實(shí)操過程:3.1.2NumPy數(shù)組切片和運(yùn)算NumPy的數(shù)組運(yùn)算支持向量化運(yùn)算,其運(yùn)算速度近似達(dá)到C語言運(yùn)算級別。當(dāng)我們需要進(jìn)行數(shù)據(jù)分析時(shí),可使用NumPy模塊對數(shù)組進(jìn)行索引和切片,選取到符合條件的數(shù)組元素用于數(shù)據(jù)分析,這樣可以大幅提高程序的運(yùn)算速度。實(shí)操過程:(1)數(shù)組切片及復(fù)制(2)數(shù)組的運(yùn)算(3)矩陣轉(zhuǎn)置(4)使用sort函數(shù)對數(shù)組進(jìn)行排序(5)使用unique函數(shù)對數(shù)據(jù)去重3.2Pandas統(tǒng)計(jì)分析基礎(chǔ)

統(tǒng)計(jì)分析是數(shù)據(jù)分析的重要組成部分,貫穿了整個(gè)數(shù)據(jù)分析的大部分環(huán)節(jié)。Pandas是基于NumPy的數(shù)據(jù)分析模塊,提供了大量標(biāo)準(zhǔn)數(shù)據(jù)模型和高效操作大型數(shù)據(jù)集所需的工具??梢詫Ω鞣N數(shù)據(jù)進(jìn)行運(yùn)算操作,比如歸并、再成形、選擇,還有數(shù)據(jù)清洗和數(shù)據(jù)加工特征,廣泛應(yīng)用在學(xué)術(shù)、金融、統(tǒng)計(jì)學(xué)等各個(gè)數(shù)據(jù)分析領(lǐng)域中。3.2.1Pandas的數(shù)據(jù)結(jié)構(gòu)

數(shù)據(jù)結(jié)構(gòu)是指相互之間存在的一種或多種特定關(guān)系的數(shù)據(jù)類型的集合。Pandas有三種數(shù)據(jù)結(jié)構(gòu),Pandas有三種數(shù)據(jù)結(jié)構(gòu),分別為:Series(系列)和DataFrame(數(shù)據(jù)框)和MultiIndex(老版本為Panel)。其中,Series是一維數(shù)據(jù)結(jié)構(gòu),DataFrame是二維的表格型數(shù)據(jù)結(jié)構(gòu),MultiIndex是三維的數(shù)據(jù)結(jié)構(gòu)。Pandas描述性統(tǒng)計(jì)

描述統(tǒng)計(jì)學(xué)(descriptivestatistics)是一門統(tǒng)計(jì)學(xué)領(lǐng)域的學(xué)科,主要研究如何取得反映客觀現(xiàn)象的數(shù)據(jù),并以圖表形式對所搜集的數(shù)據(jù)進(jìn)行處理和顯示,最終對數(shù)據(jù)的規(guī)律、特征做出綜合性的描述分析。Pandas庫正是對描述統(tǒng)計(jì)學(xué)知識完美應(yīng)用的體現(xiàn),Pandas中常用的統(tǒng)計(jì)學(xué)函數(shù)及說明見表3-1。函數(shù)名描述說明count()統(tǒng)計(jì)非空值數(shù)量sum()求和mean()求均值median()求中位數(shù)mode()求眾數(shù)std()求標(biāo)準(zhǔn)差min()求最小值max()求最大值abs()求絕對值prod()求數(shù)組元素的乘積cumsum()累計(jì)總和,axis=0,按照行累加;axis=1,按照列累加。cumprod()累計(jì)乘積,axis=0,按照行累積;axis=1,按照列累積。corr()計(jì)算數(shù)列或變量之間的相關(guān)系數(shù),取值-1到1,值越大關(guān)聯(lián)性越強(qiáng)。describe()函數(shù)顯示與DataFrame數(shù)據(jù)列相關(guān)的統(tǒng)計(jì)信息摘要3.2.2Series語法及基本操作Series是一個(gè)類似于一維數(shù)組的數(shù)據(jù)結(jié)構(gòu),它能夠保存任何類型的數(shù)據(jù),比如整數(shù)、字符串、浮點(diǎn)數(shù)等,主要由一行或一列數(shù)據(jù)和與之相關(guān)的索引兩部分構(gòu)成。Series還同時(shí)具有數(shù)組和字典的功能,因此,也支持一些字典的方法。其語法格式如下:

pandas.Series(data,index,dtype,name,copy)

參數(shù)說明:data:一組數(shù)據(jù),一般是list和ndarray等類型。index:數(shù)據(jù)索引標(biāo)簽,唯一的,且與數(shù)據(jù)的長度相等。如果不指定,默認(rèn)從0開始自動創(chuàng)建整數(shù)索引。dtype:數(shù)據(jù)類型,默認(rèn)為自己判斷。name:設(shè)置名稱,默認(rèn)為空。copy:拷貝數(shù)據(jù),默認(rèn)為False。3.2.3DataFrame語法及基本操作DataFrame(數(shù)據(jù)框)是一個(gè)類似于二維數(shù)組或Excel二維表格的數(shù)據(jù)結(jié)構(gòu),用于存儲多行和多列的數(shù)據(jù)集合,是Series的容器。構(gòu)建DataFrame的方式有很多,最常用的是直接傳入一個(gè)由等長列表或NumPy數(shù)組組成的字典來形成DataFrame。其語法格式如下:

pandas.DataFrame(data,index,columns,dtype,copy)

參數(shù)說明:data:一組數(shù)據(jù)(ndarray、series、map、lists、dict等類型)。index:行索引(行標(biāo)簽),表示不同行,橫向索引,0軸,axis=0。與創(chuàng)建Series索引方法相同。columns:列索引(列標(biāo)簽),表示不同列,縱向索引,1軸,axis=1。如果沒有傳入索引參數(shù),默認(rèn)從0開始自動創(chuàng)建整數(shù)列索引。dtype:數(shù)據(jù)類型,默認(rèn)會自己判斷。copy:拷貝數(shù)據(jù),默認(rèn)為False。指定軸(axis)參數(shù)在DataFrame中,使用聚合類方法時(shí)需要指定軸參數(shù)。下面介紹兩種傳參方式,如圖3-1所示。圖3-1DataFrame中軸的取向?qū)π胁僮鳎J(rèn)使用axis=0或者使用index。對列操作,默認(rèn)使用axis=1或者使用columns。3.2.4DataFrame的合并、拼接和組合

Pandas包中的append、merge、join、concat、combine_first函數(shù)可以完成對Series或DataFrame數(shù)據(jù)的合并、拼接和組合。append可對數(shù)據(jù)框進(jìn)行簡單合并merge可以實(shí)現(xiàn)相同列合并join根據(jù)索引進(jìn)行合并concat可以對行拼接或列拼接combine_first可以用來組合對象,并對齊數(shù)據(jù)。3.3分組與聚合

數(shù)據(jù)的分組與聚合是關(guān)系型數(shù)據(jù)庫中比較常見術(shù)語。使用數(shù)據(jù)庫時(shí),我們利用查詢操作對各列或各行中的數(shù)據(jù)進(jìn)行分組,可以針對其中的每一組數(shù)據(jù)進(jìn)行各種不同的操作。Pandas提供了一個(gè)靈活高效的groupby方法,配合agg方法或apply方法,能夠?qū)崿F(xiàn)分組與聚合的操作。3.3.1數(shù)據(jù)分組

數(shù)據(jù)分組是指根據(jù)數(shù)據(jù)分析對象的特征,按照一定的數(shù)據(jù)指標(biāo),把數(shù)據(jù)劃分為不同的類別或區(qū)間來進(jìn)行研究,以揭示其內(nèi)在的聯(lián)系和規(guī)律性。

1.groupby的基本用法groupby方法提供的是分組聚合步驟中的拆分功能,能根據(jù)索引或字段對數(shù)據(jù)進(jìn)行分組。其常用參數(shù)與使用格式如下。DataFrame.groupby(by=None,axis=0,level=None,as_index=True,sort=True,group_keys=True,squeeze=False)3.3.1數(shù)據(jù)分組參數(shù)名稱說明by接收list,string,mapping或generator,用于確定進(jìn)行分組的依據(jù)。by參數(shù)的特別說明:①如果傳入的是一個(gè)函數(shù),則對索引進(jìn)行計(jì)算并分組;②如果傳入的是一個(gè)字典或者Series,則字典或者Series的值用來做分組依據(jù);③如果傳入一個(gè)NumPy數(shù)組,則數(shù)據(jù)的元素作為分組依據(jù);④如果傳入的是字符串或者字符串列表,則使用這些字符串所代表的字段作為分組依據(jù)。axis接收int,表示操作的軸向,默認(rèn)對列進(jìn)行操作,默認(rèn)為0。level接收int或者索引名,代表標(biāo)簽所在級別,默認(rèn)為None。as_index接收boolearn,表示聚合后的聚合標(biāo)簽是否以DataFrame索引形式輸出,默認(rèn)為True。sort接收boolearn,表示是否對分組依據(jù)分組標(biāo)簽進(jìn)行排序,默認(rèn)為True。group_keys接收boolearn,表示是否顯示分組標(biāo)簽的名稱,默認(rèn)為True。squeeze接收boolearn,表示是否在允許的情況下對返回?cái)?shù)據(jù)進(jìn)行降維,默認(rèn)為False。groupby方法的參數(shù)及其說明3.3.1數(shù)據(jù)分組

2.cut函數(shù)的基本用法pandas.cut()函數(shù)可以將數(shù)據(jù)進(jìn)行分類成不同的區(qū)間值。

函數(shù)的命令格式如下:

pandas.cut(x,bins,right=True,labels=None,include_lowest=False)

參數(shù)說明:x:分箱時(shí)輸入的數(shù)組,必須為一維數(shù)組。bins:分類依據(jù)的標(biāo)準(zhǔn),可以是int、標(biāo)量序列或間隔索引(IntervalIndex)。right:表示分組的時(shí)候bins區(qū)間的最右邊是否閉合,默認(rèn)為True。labels:要返回的標(biāo)簽,和bins的區(qū)間對應(yīng)。include_lowest:第一個(gè)區(qū)間是否為左包含,默認(rèn)為False,不包含;True則包含。3.3.2數(shù)據(jù)聚合

數(shù)據(jù)聚合就是對分組后的數(shù)據(jù)進(jìn)行計(jì)算,產(chǎn)生標(biāo)量值的數(shù)據(jù)轉(zhuǎn)換過程。

我們可以調(diào)用groupby相關(guān)方法讀取各分組的統(tǒng)計(jì)信息,比如count、size、mean等,這些方法為查看每一組數(shù)據(jù)的整體情況、分布狀態(tài)提供了良好的支持。groupby常用的描述性統(tǒng)計(jì)方法及說明如表3-4所示。表3-4groupby常用的描述性統(tǒng)計(jì)方法及說明3.3.2數(shù)據(jù)聚合1.聚合函數(shù)的基本使用方法

調(diào)用groupby相關(guān)方法讀取各分組的統(tǒng)計(jì)信息,比如count、size、mean等,這些方法為查看每一組數(shù)據(jù)的整體情況、分布狀態(tài)提供了良好的支持。2.應(yīng)用agg方法對數(shù)據(jù)聚合agg和aggregate方法都支持對每個(gè)分組應(yīng)用某函數(shù),包括Python內(nèi)置函數(shù)或自定義函數(shù)。同時(shí)這兩個(gè)方法能夠也能夠直接對DataFrame進(jìn)行函數(shù)應(yīng)用操作。在正常使用過程中,agg函數(shù)和aggregate函數(shù)對DataFrame對象操作時(shí)功能幾乎完全相同,因此只需要掌握其中一個(gè)函數(shù)即可。3.3.2數(shù)據(jù)聚合3.應(yīng)用apply方法對數(shù)據(jù)聚合

使用apply對groupby對象進(jìn)行聚合操作其方法類似于agg方法,能夠?qū)⒑瘮?shù)應(yīng)用于每一列。不同之處在于apply方法相比agg方法傳入的函數(shù)只能夠作用于整個(gè)DataFrame或者Series,而無法像agg一樣能夠?qū)Σ煌侄危瑧?yīng)用不同函數(shù)獲取不同結(jié)果。4.應(yīng)用transform方法對數(shù)據(jù)聚合transform方法能夠?qū)φ麄€(gè)DataFrame的所有元素進(jìn)行操作,同時(shí)還能夠?qū)ataFrame分組后的對象groupby進(jìn)行操作。使用transform方法能夠?qū)⑦\(yùn)算分布到每一行。需要注意的是,在聚合運(yùn)算中空值不參與計(jì)算。本章小結(jié)

本章介紹了NumPy和Pandas的基礎(chǔ)知識,為后續(xù)章節(jié)學(xué)習(xí)奠定了數(shù)據(jù)分析理論基礎(chǔ)。首先,簡要介紹了NumPy創(chuàng)建多維數(shù)組及數(shù)據(jù)類型轉(zhuǎn)換方法、隨機(jī)數(shù)生成方法、數(shù)組變換方法以及NumPy數(shù)組切片和運(yùn)算方法;其次,概要性介紹了Pandas數(shù)據(jù)結(jié)構(gòu)、Series語法及基本操作,包括Series的創(chuàng)建、讀取、排序及增刪改操作;最后,重點(diǎn)介紹了DataFrame語法及基本操作,包括DataFrame的創(chuàng)建、讀取、排序及增刪改查操作,通過append、merge、concat等方法實(shí)現(xiàn)DataFrame的合并、拼接和組合,使用groupby方法對數(shù)據(jù)進(jìn)行分組,使用agg、apply、transform等方法聚合數(shù)據(jù)。單項(xiàng)選擇題簡答題填空題、程序填空題操作題本章習(xí)題感謝您的觀看

第4章使用Pandas導(dǎo)入數(shù)據(jù)Python數(shù)據(jù)分析與可視化學(xué)習(xí)目標(biāo)掌握讀寫文本文件的方法;掌握讀寫Excel文件的方法;掌握讀寫網(wǎng)頁HTML表格的方法;掌握讀寫JSON格式文件的方法;掌握讀取MySQL數(shù)據(jù)庫文件的方法。任務(wù)四:使用Pandas導(dǎo)入數(shù)據(jù)的方法4.1文本文件(txt和csv文件)4.2讀寫Excel文件4.3讀寫HTML文件中的表格數(shù)據(jù)4.4讀寫JSON格式文件4.5讀取MySQL數(shù)據(jù)庫文件目錄CONTENTS

對于數(shù)據(jù)分析而言,絕大部分?jǐn)?shù)據(jù)來源于外部數(shù)據(jù)。數(shù)據(jù)存在的形式多種多樣,有文件(如txt、csv、Excel)和數(shù)據(jù)庫(如MySQL、Oracle、SQLServer)等形式。Pandas庫將外部數(shù)據(jù)轉(zhuǎn)換為DataFrame數(shù)據(jù)格式,處理完成后可再存儲到相應(yīng)的外部文件中。4.1文本文件

文本文件是一種由若干行字符構(gòu)成的計(jì)算機(jī)文件,它是一種典型的順序文件。使用Pandas讀寫的文本文件主要指的是txt文本文件和csv文件。4.1.1讀寫txt文本文件在Pandas中使用read_table函數(shù)來導(dǎo)入txt文件,其命令格式如下:Pandas.read_table(file,names=[列名1,列名2,…],sep="\t",…)其中:file為文件路徑與文件名。names為列名,默認(rèn)文件中的第一行作為列名。sep為字符分隔符,默認(rèn)為\t,\t表示Tab鍵。4.1.2讀寫csv文件

逗號分隔值(Comma-SeparatedValues,CSV),也稱為字符分隔值,因此,分隔字符不一定是逗號,其文件以純文本形式存儲表格數(shù)據(jù)(數(shù)字和文本)。csv文件由任意數(shù)目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其它字符或字符串,最常見的是逗號或制表符。通常,所有記錄都有完全相同的字段序列。csv文件格式常見于手機(jī)通訊錄,可以使用記事本、Excel等軟件打開。

在Pandas中使用read_csv函數(shù)來導(dǎo)入csv文件,其命令格式如下:

Pandas.read_csv(file,names=[列名1,列名2,…],sep=",",…)

其中:file為文件路徑與文件名。names為列名,默認(rèn)文件中的第一行作為列名。sep為字符分隔符,默認(rèn)為逗號。案例分析Iris數(shù)據(jù)集是常用的分類實(shí)驗(yàn)數(shù)據(jù)集,1936年由Fisher收集整理。Iris也稱鳶尾花卉數(shù)據(jù)集,是一類多重變量分析的數(shù)據(jù)集。數(shù)據(jù)集包含150個(gè)數(shù)據(jù)樣本,分為3類,每類50個(gè)數(shù)據(jù),每個(gè)數(shù)據(jù)包含4個(gè)花卉屬性和1個(gè)目標(biāo)屬性,所以iris數(shù)據(jù)集是一個(gè)150行5列的二維表??赏ㄟ^花萼長度(Sepal.Length),花萼寬度(Sepal.Width),花瓣長度(Petal.Length),花瓣寬度(Petal.Width)4個(gè)屬性預(yù)測鳶尾花卉屬于Setosa(山鳶尾)、Versicolour(變色鳶尾)和Virginica(維吉尼亞鳶尾)三個(gè)種類中的哪一類。4.2讀寫Excel文件Excel是微軟公司的辦公軟件MicrosoftOffice的組件之一,它可以對數(shù)據(jù)進(jìn)行處理、統(tǒng)計(jì)分析等操作,廣泛地應(yīng)用于管理、財(cái)經(jīng)和金融等眾多領(lǐng)域。其文件擴(kuò)展名有.xls和.xlsx兩種。Pandas提供了read_excel函數(shù)來讀取.xls和.xlsx這兩種Excel文件,語法格式為:pandas.read_excel(file,sheetname=0,header=0,index_col=None,names=None,dtype=None)4.2讀寫Excel文件參數(shù)名稱說明file接收string,為文件路徑與文件名。sheetname接收string、int,代表excel表內(nèi)數(shù)據(jù)的分表位置,默認(rèn)為0。header接收int或sequence,表示將某行數(shù)據(jù)作為列名。默認(rèn)為infer,表示自動識別。names接收int、sequence或者False,表示索引列的位置,取值為sequence則代表多重索引,默認(rèn)為None。index_col接收int、sequence或者False,表示索引列的位置,取值為sequence則代表多重索引,默認(rèn)為None。dtype接收dict。代表寫入的數(shù)據(jù)類型(列名為key,數(shù)據(jù)格式為values),默認(rèn)為None。表4-1read_excel函數(shù)和read_table函數(shù)的部分參數(shù)相同,其常用參數(shù)及其說明案例分析

要對數(shù)據(jù)進(jìn)行分析,一般都要經(jīng)過數(shù)據(jù)清洗環(huán)節(jié)。數(shù)據(jù)清洗有目的有兩個(gè):一是通過清洗讓數(shù)據(jù)可用;二是讓數(shù)據(jù)變得更適合后續(xù)的分析工作。無論是線下人工填寫的手工表,還是線上通過工具收集到的數(shù)據(jù),又或者是系統(tǒng)中導(dǎo)出的數(shù)據(jù),很多數(shù)據(jù)源都存在一些問題,例如比較常見的是數(shù)據(jù)重復(fù)、空值、異常值以及冗余的空格等問題。因此,有數(shù)據(jù)分析工程師毫不夸張說,數(shù)據(jù)清洗占了數(shù)據(jù)分析類項(xiàng)目80%的工作,然而,事實(shí)確實(shí)如此。

現(xiàn)需對工作表Sheet5數(shù)據(jù)進(jìn)行預(yù)處理,需要解決以下兩個(gè)問題。

(1)將數(shù)據(jù)表添加兩列,每位同學(xué)的各科成績總分和每位同學(xué)的整體情況(級別),級別按照[df.總分.min()-1,330,445,df.總分.max()+1]進(jìn)行劃分,分為“一般”“良好”“優(yōu)秀”三種情況。

(2)由于不同科目成績分?jǐn)?shù)差異化較大,為了保證同學(xué)成績在評定獎(jiǎng)學(xué)金的公平性,可以將每位同學(xué)的各科成績標(biāo)準(zhǔn)化后再匯總,重新標(biāo)出新的級別。4.3讀寫HTML文件中的表格數(shù)據(jù)HTML(HyperTextMark-upLanguage,超文本標(biāo)記語言)是一種制作萬維網(wǎng)頁面的標(biāo)準(zhǔn)語言,是萬維網(wǎng)瀏覽器使用的一種語言。HTML文件就是平時(shí)我們所說的靜態(tài)網(wǎng)頁文件,文件其內(nèi)容是html源代碼。使用瀏覽器就能直接打開瀏覽的超文本文件,這些文件經(jīng)常包含有各類表格,我們?nèi)绻枰獙W(wǎng)頁中的表格數(shù)據(jù)進(jìn)行分析,可以通過安裝HTML5Lib模塊,使用read_html()方法對網(wǎng)頁表格數(shù)據(jù)進(jìn)行讀取,也可以使用to_html()方法將表格轉(zhuǎn)換為HTML結(jié)構(gòu)進(jìn)行網(wǎng)頁輸出。安裝HTML5Lib模塊

打開AnacondaPrompt程序環(huán)境,在Python環(huán)境下輸入如下命令行:pipinstallhtml5lib

或者輸入命令行:condainstallhtml5lib4.4讀寫JSON格式文件JSON(JavaScriptObjectNotation)是一種輕量級的數(shù)據(jù)交換格式。易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成??梢栽诙喾N語言之間進(jìn)行數(shù)據(jù)交換,這樣就使得JSON成為理想的數(shù)據(jù)交換格式。JSON數(shù)據(jù)是由鍵值對組成,并且由大括號(花括號)包圍。每個(gè)鍵由引號引起來,鍵和值之間使用冒號進(jìn)行分隔,多組鍵值對之間使用逗號進(jìn)行分隔。JSON數(shù)據(jù)已成為最常用的標(biāo)準(zhǔn)數(shù)據(jù)格式之一,特別是在Web數(shù)據(jù)的傳輸方面。使用JSON在線解析及格式化工具(/),可以查看JSON結(jié)構(gòu)。4.4讀寫JSON格式文件簡單的JSON格式文件處理:(1)將數(shù)據(jù)框轉(zhuǎn)換為JSON格式。使用to_json()函數(shù)將數(shù)據(jù)框保存為web.json文件,操作命令如下:web[0].to_json('data/web.json')執(zhí)行完成后,我們會發(fā)現(xiàn)在data目錄下生成了一個(gè)web.json文件。(2)讀取JSON格式文件。使用read_json()函數(shù)讀取web.json文件,操作命令如下:pd.read_json('data/web.json')4.4讀寫JSON格式文件復(fù)雜的JSON格式文件處理:

結(jié)構(gòu)簡單的JSON文件可以直接使用read_json()函數(shù)進(jìn)行讀取,但是結(jié)構(gòu)復(fù)雜的JSON文件就實(shí)現(xiàn)不了。這時(shí)我們可以使用JSON模塊對這類結(jié)構(gòu)復(fù)雜的JSON文件進(jìn)行讀取。加載JSON模塊:

importjson4.5讀取MySQL數(shù)據(jù)庫文件MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQLAB公司于1995年發(fā)布。MySQL于2008年被SunMicrosystems以10億美元收購,2009年Oracle收購SunMicrosystems時(shí),同時(shí)也獲得了MySQL的所有權(quán)。如今,MySQL是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在WEB應(yīng)用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,關(guān)系數(shù)據(jù)庫管理系統(tǒng))應(yīng)用軟件之一。

MySQL關(guān)系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉庫內(nèi),這樣就增加了速度并提高了靈活性。MySQL所使用的SQL語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型和大型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。4.5讀取MySQL數(shù)據(jù)庫文件Pandas提供了便捷連接MySQL數(shù)據(jù)庫的接口,我們只需要安裝pymysql模塊即可實(shí)現(xiàn)輕松連接MySQL數(shù)據(jù)庫,操作數(shù)據(jù)庫中任一張表。

安裝pymysql模塊方法如圖4-7所示:圖4-7安裝pymysql模塊魔法指令:使用pip命令安裝最新的PyMySQL模塊。%pipinstal

溫馨提示

  • 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

提交評論