大數(shù)據(jù)基礎(chǔ) 課件匯 胡堅(jiān) 4.3.3 Scala語(yǔ)法基礎(chǔ)-8.6 利用信用評(píng)分機(jī)制進(jìn)行金融風(fēng)險(xiǎn)控制_第1頁(yè)
大數(shù)據(jù)基礎(chǔ) 課件匯 胡堅(jiān) 4.3.3 Scala語(yǔ)法基礎(chǔ)-8.6 利用信用評(píng)分機(jī)制進(jìn)行金融風(fēng)險(xiǎn)控制_第2頁(yè)
大數(shù)據(jù)基礎(chǔ) 課件匯 胡堅(jiān) 4.3.3 Scala語(yǔ)法基礎(chǔ)-8.6 利用信用評(píng)分機(jī)制進(jìn)行金融風(fēng)險(xiǎn)控制_第3頁(yè)
大數(shù)據(jù)基礎(chǔ) 課件匯 胡堅(jiān) 4.3.3 Scala語(yǔ)法基礎(chǔ)-8.6 利用信用評(píng)分機(jī)制進(jìn)行金融風(fēng)險(xiǎn)控制_第4頁(yè)
大數(shù)據(jù)基礎(chǔ) 課件匯 胡堅(jiān) 4.3.3 Scala語(yǔ)法基礎(chǔ)-8.6 利用信用評(píng)分機(jī)制進(jìn)行金融風(fēng)險(xiǎn)控制_第5頁(yè)
已閱讀5頁(yè),還剩190頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

浙江《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群4.3.1Scala簡(jiǎn)介4.3.3Scala語(yǔ)法基礎(chǔ)4.3Scala語(yǔ)言4.3.2Scala安裝與使用編程基礎(chǔ)大數(shù)據(jù)大數(shù)據(jù)基礎(chǔ)Unit44.3.3Scala語(yǔ)法基礎(chǔ)1變量與常量Scala是一種靜態(tài)類(lèi)型語(yǔ)言,支持變量和常量的聲明和定義。在Scala中,變量可以用var關(guān)鍵字聲明,常量則是用val關(guān)鍵字聲明,常量一旦被賦值就不能再修改。聲明變量和常量的語(yǔ)法格式如下:var變量名:數(shù)據(jù)類(lèi)型[=初始值]val常量名:數(shù)據(jù)類(lèi)型[=初始值]4.3.3Scala語(yǔ)法基礎(chǔ)1變量與常量valage:Int=25//聲明一個(gè)val(常量)//age=30//這行代碼會(huì)報(bào)錯(cuò),因?yàn)闊o(wú)法改變age的值varname:String="張三"http://聲明一個(gè)var(變量)name="李四"http://可以改變name的值指定類(lèi)型聲明變量和常量valpi=3.14//推斷為Double類(lèi)型vargreeting="Hello,world!"http://推斷為String類(lèi)型自動(dòng)推斷類(lèi)型聲明變量和常量4.3.3Scala語(yǔ)法基礎(chǔ)2數(shù)據(jù)類(lèi)型整型(Int):表示整數(shù)值,取值范圍為-2^31~2^31-1。長(zhǎng)整型(Long):表示更大范圍的整數(shù)值,取值范圍為-2^63~2^63-1。浮點(diǎn)型(Float):表示帶小數(shù)部分的實(shí)數(shù)值,占用32位空間。雙精度浮點(diǎn)型(Double):表示更高精度的實(shí)數(shù)值,占用64位空間。布爾型(Boolean):表示邏輯上的真或假。字符型(Char):表示單個(gè)字符,使用單引號(hào)括起來(lái)。字符串型(String):表示一組字符,使用雙引號(hào)括起來(lái)。4.3.3Scala語(yǔ)法基礎(chǔ)2數(shù)據(jù)類(lèi)型varage:Int=25//聲明一個(gè)整型變量varbigNumber:Long=123456789012345L//聲明一個(gè)長(zhǎng)整型變量varpi:Float=3.14f//聲明一個(gè)浮點(diǎn)型變量vare:Double=2.71828//聲明一個(gè)雙精度浮點(diǎn)型變量varisScalaFun:Boolean=true//聲明一個(gè)布爾型變量varfirstLetter:Char='S'//聲明一個(gè)字符型變量vargreeting:String="Hello,world!"http://聲明一個(gè)字符串型變量4.3.3Scala語(yǔ)法基礎(chǔ)3運(yùn)算符——算術(shù)運(yùn)算算術(shù)運(yùn)算符覆蓋加(+)、減(-)、乘(*)、除(/)、求余(%)等幾種運(yùn)算,下面是這些運(yùn)算符的示例代碼:vala=10;valb=20valsum=a+b//加法運(yùn)算,sum的值為30valdiff=b-a//減法運(yùn)算,diff的值為10valproduct=a*b//乘法運(yùn)算,product的值為200valquotient=a/b//除法運(yùn)算,quotient的值為0,整除valremainder=a%b//求余運(yùn)算,remainder的值為104.3.3Scala語(yǔ)法基礎(chǔ)3運(yùn)算符——比較運(yùn)算比較運(yùn)算符覆蓋相等(==)、不等(!=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)等幾種運(yùn)算,下面是這些運(yùn)算符的示例代碼:vala=10;valb=20;valc=10valisEqual=a==b//isEqual的值為falsevalisNotEqual=a!=b//isNotEqual的值為truevalisGreaterThan=b>a//isGreaterThan的值為truevalisLessThan=a<b//isLessThan的值為truevalisGreaterOrEqual=b>=a//isGreaterOrEqual的值為truevalisLessOrEqual=c<=b//isLessOrEqual的值為true4.3.3Scala語(yǔ)法基礎(chǔ)3運(yùn)算符——邏輯運(yùn)算邏輯運(yùn)算符覆蓋與(&&)、或(||)、非(!)三種運(yùn)算,下面是這些運(yùn)算符的示例代碼:vala=true;valb=falsevalresult=a&&b//result的值為falsevalresult=a||b//result的值為truevalresult=!a//result的值為false4.3.3Scala語(yǔ)法基礎(chǔ)4選擇語(yǔ)句——if語(yǔ)句if語(yǔ)句用于根據(jù)給定的條件決定是否執(zhí)行某段代碼。如果條件為真,則執(zhí)行語(yǔ)句塊;否則不執(zhí)行。valx=10if(x<20){println("x小于20")//條件滿(mǎn)足,輸出該文本}4.3.3Scala語(yǔ)法基礎(chǔ)4選擇語(yǔ)句——if-else語(yǔ)句if-else語(yǔ)句用于根據(jù)給定的條件執(zhí)行不同的代碼塊。如果條件為真,則執(zhí)行if語(yǔ)句塊;否則執(zhí)行else語(yǔ)句塊。valx=10if(x<20){println("x小于20")//條件滿(mǎn)足,輸出該文本}else{println("x大于等于20")//條件不滿(mǎn)足,不輸出}4.3.3Scala語(yǔ)法基礎(chǔ)4選擇語(yǔ)句——if-else語(yǔ)句嵌套通過(guò)if-else語(yǔ)句嵌套處理,程序可以在多個(gè)條件之間進(jìn)行判斷和選擇,并根據(jù)不同的條件執(zhí)行不同的代碼塊。valx=10if(x<0){println("x是負(fù)數(shù)")}elseif(x==0){println("x等于0")}else{println("x是正數(shù)")}4.3.3Scala語(yǔ)法基礎(chǔ)5循環(huán)語(yǔ)句——while循環(huán)while循環(huán)語(yǔ)句用于在給定條件為true時(shí)執(zhí)行某個(gè)代碼塊,當(dāng)條件不再為true時(shí),停止執(zhí)行。vari=0while(i<10){println(i)i+=1}4.3.3Scala語(yǔ)法基礎(chǔ)5循環(huán)語(yǔ)句——do-while循環(huán)do-while循環(huán)與while循環(huán)類(lèi)似,不同之處在于do-while循環(huán)至少會(huì)執(zhí)行一次代碼塊,然后再根據(jù)給定條件決定是否繼續(xù)執(zhí)行。vari=0do{println(i)i+=1}while(i<10)4.3.3Scala語(yǔ)法基礎(chǔ)5循環(huán)語(yǔ)句——for循環(huán)for循環(huán)用于迭代集合中的元素,并重復(fù)執(zhí)行特定的代碼塊。在Scala中,for循環(huán)可以遍歷數(shù)組、列表、集合等類(lèi)型的數(shù)據(jù)結(jié)構(gòu)。vallist=List(1,2,3,4,5)for(num<-list){println(num)}4.3.3Scala語(yǔ)法基礎(chǔ)6Scala大數(shù)據(jù)應(yīng)用——操作步驟進(jìn)入Linux系統(tǒng),打開(kāi)“終端”,進(jìn)入Shell命令提示符狀態(tài)。在“/usr/local/scala/bigdata”目錄下,新建一個(gè)wordcount子目錄在“/usr/local/scala/bigdata/wordcount”目錄下新建兩個(gè)文本文件word1.txt和word2.txt,在兩個(gè)文本文件中隨意輸入一些單詞,用空格隔開(kāi)。在“/usr/local/scala/bigdata”目錄下新建一個(gè)test.scala文件,并在test.scala中編寫(xiě)詞頻統(tǒng)計(jì)的Scala程序代碼。Scala進(jìn)行詞頻統(tǒng)計(jì)4.3.3Scala語(yǔ)法基礎(chǔ)6Scala大數(shù)據(jù)應(yīng)用——總體思路importjava.io.Fileimportscala.io.SourceobjectWordCount{defmain(args:Array[String]):Unit={//1、讀取文件、設(shè)置分詞結(jié)果存儲(chǔ)變量

//2、遍歷文件、切分單詞并記錄數(shù)量

//3、輸出分詞結(jié)果}}4.3.3Scala語(yǔ)法基礎(chǔ)6Scala大數(shù)據(jù)應(yīng)用——步驟1代碼valdirfile=newFile("/usr/local/scala/bigdata/wordcount")valfiles=dirfile.listFilesfor(file<-files)println(file)vallistFiles=files.toListvalwordsMap=scala.collection.mutable.Map[String,Int]()讀取文件、設(shè)置分詞結(jié)果存儲(chǔ)變量。4.3.3Scala語(yǔ)法基礎(chǔ)6Scala大數(shù)據(jù)應(yīng)用——步驟2代碼對(duì)列表listFiles中的每個(gè)元素進(jìn)行遍歷,取出每個(gè)文件,并調(diào)用getLines()方法獲取該文件的所有行,并針對(duì)每行執(zhí)行foreach()方法進(jìn)行遍歷使用split()方法把一行語(yǔ)句切分成一個(gè)個(gè)單詞,這些單詞又構(gòu)成一個(gè)集合,然后對(duì)這個(gè)集合中的每個(gè)元素,也就是每個(gè)單詞,又通過(guò)foreach()方法進(jìn)行遍歷,對(duì)于遍歷到的每個(gè)單詞進(jìn)行計(jì)數(shù),存儲(chǔ)在Map中l(wèi)istFiles.foreach(file=>Source.fromFile(file).getLines().foreach(line=>line.split("").foreach(word=>{if(wordsMap.contains(word)){wordsMap(word)+=1}else{wordsMap+=(word->1)}})))4.3.3Scala語(yǔ)法基礎(chǔ)6Scala大數(shù)據(jù)應(yīng)用——步驟3代碼與執(zhí)行println(wordsMap)for((key,value)<-wordsMap)println(key+":"+value)輸出分詞結(jié)果的代碼如下。cd/usr/local/scala/bigdata//要確保當(dāng)前工作目錄是bigdata目錄scalatest.scala程序編寫(xiě)完成后,在Shell命令提示符狀態(tài)下,運(yùn)行下面命令執(zhí)行程序即可。《大數(shù)據(jù)基礎(chǔ)》在線(xiàn)開(kāi)放課程組《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群浙江訓(xùn)練4-1單元4Python語(yǔ)言店鋪寶貝價(jià)格排序訓(xùn)練同步BigdataHadoop大數(shù)據(jù)基礎(chǔ)pythonUnit4《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群訓(xùn)練4-1:店鋪寶貝價(jià)格排序案例目標(biāo)用戶(hù)輸入多個(gè)淘寶店鋪寶貝的價(jià)格,程序?qū)斎氲膬r(jià)格數(shù)據(jù)進(jìn)行處理,要求價(jià)格數(shù)據(jù)以升序形式輸出。案例解釋在一行內(nèi)輸入多個(gè)寶貝價(jià)格數(shù)值(正整數(shù)),使用冒泡排序等排序算法對(duì)價(jià)格數(shù)據(jù)進(jìn)行處理,并輸出排序后數(shù)據(jù)。運(yùn)行效果實(shí)現(xiàn)思路基本步驟按實(shí)訓(xùn)要求創(chuàng)建工程并配置環(huán)境。接收用戶(hù)控制臺(tái)輸入的多個(gè)價(jià)格:(1)定義列表變量用于保存價(jià)格數(shù)據(jù)。(2)使用input方法接受用戶(hù)控制臺(tái)的輸入(一行輸入所有價(jià)格)。(3)拆分輸入字符串,轉(zhuǎn)化成價(jià)格字符串列表。(4)循環(huán)將各個(gè)價(jià)格轉(zhuǎn)化為整數(shù),將獲取的數(shù)值存儲(chǔ)入價(jià)格列表中。升序排序思路:(1)思路:每次排序從左至右依次比較相鄰兩個(gè)列表元素,若左側(cè)元素(下標(biāo)較小)比右側(cè)元素(下標(biāo)較大)大,則交換兩者位置,直至把本次待比較數(shù)據(jù)中的最大者置右。每次排序都確定本次排序數(shù)據(jù)中的最大者,并使下一次待排序數(shù)據(jù)個(gè)數(shù)減少1個(gè)。訓(xùn)練4-1:店鋪寶貝價(jià)格排序運(yùn)行效果實(shí)現(xiàn)思路基本步驟(2)例:對(duì)寶貝價(jià)格數(shù)列:418937進(jìn)行升序排序,方法和過(guò)程如下:訓(xùn)練4-1:店鋪寶貝價(jià)格排序運(yùn)行效果實(shí)現(xiàn)思路基本步驟實(shí)現(xiàn)列表升序排序(冒泡排序):(1)創(chuàng)建用于遍歷列表的外層for循環(huán)(設(shè)循環(huán)變量為i):1)循環(huán)范圍:0~列表長(zhǎng)度-2。(2)創(chuàng)建用于按大小關(guān)系交換列表成員的內(nèi)層for循環(huán)(設(shè)循環(huán)變量為j):1)循環(huán)范圍:0~列表長(zhǎng)度-i-2。2)說(shuō)明:循環(huán)范圍的設(shè)計(jì)目的是,確保每次排序中相鄰元素的比較次數(shù)。(3)依次判斷當(dāng)前列表成員(prices[j])是否大于右側(cè)相鄰列表成員(prices[j+1])。(4)如果prices[j]>prices[j+1],那么交換兩個(gè)列表成員。訓(xùn)練4-1:店鋪寶貝價(jià)格排序運(yùn)行效果實(shí)現(xiàn)思路基本步驟輸出結(jié)果:(1)向控制臺(tái)輸出:“排序后寶貝價(jià)格:”。(2)向控制臺(tái)輸出列表中的數(shù)據(jù),數(shù)據(jù)間通過(guò)空格間隔,

并在一行中顯示。訓(xùn)練4-1:店鋪寶貝價(jià)格排序《大數(shù)據(jù)基礎(chǔ)》在線(xiàn)開(kāi)放課程組《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群5.1.1數(shù)據(jù)采集原理5.1數(shù)據(jù)采集5.1.2BeautifulSoup網(wǎng)絡(luò)

數(shù)據(jù)采集與預(yù)處理數(shù)據(jù)采集大數(shù)據(jù)基礎(chǔ)Unit5

為什么需要數(shù)據(jù)采集特征:隨著人類(lèi)活動(dòng)的擴(kuò)展,數(shù)據(jù)規(guī)模在急劇膨脹,數(shù)據(jù)類(lèi)型也越來(lái)越多。需求:數(shù)據(jù)需要以簡(jiǎn)單的方式進(jìn)行處理,又要十分準(zhǔn)確且能迅速滿(mǎn)足各種類(lèi)型的數(shù)據(jù)需求。挑戰(zhàn):在大量分散的、異構(gòu)的數(shù)據(jù)中收集需要的數(shù)據(jù),以相對(duì)統(tǒng)一的方式存儲(chǔ)。這也就是數(shù)據(jù)采集的任務(wù)。5.1.1數(shù)據(jù)采集原理系統(tǒng)日志采集工具很多互聯(lián)網(wǎng)企業(yè)都有數(shù)據(jù)采集工具,多用于系統(tǒng)日志采集,如Flume,Kafka,Chukwa等,這些工具均采用分布式架構(gòu),能滿(mǎn)足每秒數(shù)百M(fèi)B的日志數(shù)據(jù)采集和傳輸需求。

5.1.1數(shù)據(jù)采集原理系統(tǒng)日志采集工具——FlumeFlume是一種分布式、可靠和可用的服務(wù),用于高效地收集、聚合和移動(dòng)大量日志數(shù)據(jù)。比如,將日志數(shù)據(jù)從各種網(wǎng)站服務(wù)器上匯集起來(lái)存儲(chǔ)到HDFS、HBase等集中存儲(chǔ)器中。

5.1.1數(shù)據(jù)采集原理

網(wǎng)絡(luò)數(shù)據(jù)采集工具需求:通過(guò)網(wǎng)絡(luò)爬蟲(chóng)和一些網(wǎng)站平臺(tái)提供的公共API等方式從網(wǎng)站上獲取數(shù)據(jù)。方法:將非結(jié)構(gòu)化數(shù)據(jù)和半結(jié)構(gòu)化數(shù)據(jù)的網(wǎng)頁(yè)數(shù)據(jù)從網(wǎng)頁(yè)中提取出來(lái)。并將其提取、清洗、轉(zhuǎn)換成結(jié)構(gòu)化的數(shù)據(jù),將其存儲(chǔ)為統(tǒng)一的本地文件數(shù)據(jù)。工具:用于網(wǎng)頁(yè)爬蟲(chóng)的ApacheNutch、Scrapy等框架,另外有諸如BeautifulSoup、urllib、requests等底層工具包。5.1.1數(shù)據(jù)采集原理

網(wǎng)絡(luò)數(shù)據(jù)采集流程5.1.1數(shù)據(jù)采集原理《大數(shù)據(jù)基礎(chǔ)》在線(xiàn)開(kāi)放課程組《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群5.1.1數(shù)據(jù)采集原理5.1數(shù)據(jù)采集5.1.2BeautifulSoup網(wǎng)絡(luò)

數(shù)據(jù)采集與預(yù)處理數(shù)據(jù)采集大數(shù)據(jù)基礎(chǔ)Unit5

BeautifulSoup簡(jiǎn)介BeautifulSoup提供一些簡(jiǎn)單的、Python式的函數(shù)用來(lái)處理導(dǎo)航、搜索、修改分析樹(shù)等功能。它是一個(gè)工具箱,通過(guò)解析文檔為用戶(hù)提供需要抓取的數(shù)據(jù),因?yàn)楹?jiǎn)單,所以不需要多少代碼就可以寫(xiě)出一個(gè)完整的應(yīng)用程序。Anaconda已經(jīng)安裝了BeautifulSoup包,程序中導(dǎo)入包就可以直接使用。frombs4importBeautifulSoup5.1.2BeautifulSoup網(wǎng)絡(luò)數(shù)據(jù)采集

獲取網(wǎng)頁(yè)內(nèi)容

網(wǎng)頁(yè)的原始內(nèi)容可以使用requests包的get方法獲取,在設(shè)置了編碼之后就能獲得html文本。而解析html文本的結(jié)構(gòu),獲取指定的元素標(biāo)簽內(nèi)容,這部分工作則可以通過(guò)BeautifulSoup實(shí)現(xiàn)。

下例獲取百度首頁(yè)內(nèi)容importrequests#導(dǎo)入requests包res=requests.get('')#獲取網(wǎng)頁(yè)內(nèi)容res.encoding='utf-8'#設(shè)置編碼格式html=res.text#獲取網(wǎng)頁(yè)文本print(html)5.1.2BeautifulSoup網(wǎng)絡(luò)數(shù)據(jù)采集

練習(xí)材料說(shuō)明

為例便于講解BeautifulSoup包的功能,本節(jié)不使用真實(shí)網(wǎng)頁(yè)數(shù)據(jù)進(jìn)行練習(xí),而是使用以下html文本,文本存放在test_html.txt中。html="""<html><head><title>TheDormouse'sstory</title></head><body><pclass="title"name="dromouse"><b>TheDormouse'sstory</b></p><pclass="story">Thereweretwolittlesisters;andtheirnameswere<ahref="/elsie"class="sister"id="link1">Elsie</a>and<ahref="/lacie"class="sister"id="link2">Lacie</a>.</p><pclass="story">...</p>"""5.1.2BeautifulSoup網(wǎng)絡(luò)數(shù)據(jù)采集

創(chuàng)建BeautifulSoup對(duì)象

使用html.parser解析html文本內(nèi)容,創(chuàng)建BeautifulSoup對(duì)象。frombs4importBeautifulSoupsoup=BeautifulSoup(html,'html.parser')5.1.2BeautifulSoup網(wǎng)絡(luò)數(shù)據(jù)采集

根據(jù)標(biāo)簽名查找BeautifulSoup提供的select方法可以根據(jù)CSS選擇器查找元素標(biāo)簽。查找結(jié)果存放在列表中,列表的每一個(gè)元素為匹配的元素標(biāo)簽,如果要訪(fǎng)問(wèn)標(biāo)簽可以使用列表的下標(biāo)引用。

直接傳遞標(biāo)簽名給select方法,可以查找所有標(biāo)簽名相符的元素。soup.select('a')#查找所有a標(biāo)簽,結(jié)果為標(biāo)簽列表5.1.2BeautifulSoup網(wǎng)絡(luò)數(shù)據(jù)采集

根據(jù)class或id查找

傳遞’.<class>’參數(shù)時(shí),BeautifulSoup根據(jù)class屬性進(jìn)行查找;傳遞’#<id>’參數(shù)時(shí),BeautifulSoup根據(jù)id屬性進(jìn)行查找。soup.select('.sister')5.1.2BeautifulSoup網(wǎng)絡(luò)數(shù)據(jù)采集soup.select('#linke1')

根據(jù)上下級(jí)關(guān)系查找當(dāng)查找條件之間用空格分隔時(shí),以普通上下級(jí)關(guān)系進(jìn)行查找;當(dāng)查找條件之間以空格大于號(hào)空格分隔時(shí),以直接上下級(jí)關(guān)系進(jìn)行查找。soup.select('body#link1')5.1.2BeautifulSoup網(wǎng)絡(luò)數(shù)據(jù)采集soup.select('p>a')

獲取標(biāo)簽的內(nèi)容

經(jīng)過(guò)查找得到元素標(biāo)簽列表后,使用下標(biāo)或迭代可以取出標(biāo)簽。然后可以進(jìn)一步訪(fǎng)問(wèn)標(biāo)簽的內(nèi)容,如文本、鏈接等。soup.select('a')[0]5.1.2BeautifulSoup網(wǎng)絡(luò)數(shù)據(jù)采集>>>soup.select('a')[0].text#獲取文本'Elsie‘>>>soup.select('a')[0]['href']#獲取鏈接'/elsie'《大數(shù)據(jù)基礎(chǔ)》在線(xiàn)開(kāi)放課程組《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群5.2.1數(shù)據(jù)預(yù)處理原理5.2數(shù)據(jù)預(yù)處理5.2.2Pandas數(shù)據(jù)預(yù)處理與預(yù)處理數(shù)據(jù)采集大數(shù)據(jù)基礎(chǔ)Unit5

數(shù)據(jù)預(yù)處理的意義與方法5.2.1數(shù)據(jù)預(yù)處理原理原始數(shù)據(jù)不一致重復(fù)不完整含噪聲高維度數(shù)據(jù)預(yù)處理方法數(shù)據(jù)清洗數(shù)據(jù)集成數(shù)據(jù)變換數(shù)據(jù)歸約

數(shù)據(jù)清洗5.2.1數(shù)據(jù)預(yù)處理原理干凈數(shù)據(jù)填充空值、丟失值消除異常數(shù)據(jù)平滑噪聲數(shù)據(jù)去掉數(shù)據(jù)中的噪音糾正不一致的數(shù)據(jù)

數(shù)據(jù)集成5.2.1數(shù)據(jù)預(yù)處理原理模式匹配整合不同數(shù)據(jù)源中的元數(shù)據(jù)。數(shù)據(jù)冗余數(shù)據(jù)中存在的直接冗余和間接冗余。數(shù)據(jù)值沖突對(duì)于一個(gè)現(xiàn)實(shí)世界實(shí)體,其來(lái)自不同數(shù)據(jù)源的屬性值或許不同。

數(shù)據(jù)變換5.2.1數(shù)據(jù)預(yù)處理原理光滑去除數(shù)據(jù)中的噪聲聚集對(duì)數(shù)據(jù)進(jìn)行匯總或聚集數(shù)據(jù)泛化使用概念分層,用高層概念替換低層或“原始”數(shù)據(jù)規(guī)范化將屬性數(shù)據(jù)按比例縮放,使之落入一個(gè)小的特定區(qū)間屬性構(gòu)造可以構(gòu)造新的屬性并添加到屬性集中,以幫助挖掘過(guò)程

數(shù)據(jù)規(guī)約5.2.1數(shù)據(jù)預(yù)處理原理特征歸約從原有的特征中刪除不重要或不相關(guān)的特征,或者通過(guò)對(duì)特征進(jìn)行重組來(lái)減少特征的個(gè)數(shù)。樣本歸約從數(shù)據(jù)集中選出一個(gè)有代表性的樣本的子集,從而減少成本、加快速度、拓寬范圍、甚至提高精度。征值歸約特將連續(xù)型特征的值離散化,使之成為少量的區(qū)間,每個(gè)區(qū)間映射到一個(gè)離散符號(hào)?!洞髷?shù)據(jù)基礎(chǔ)》在線(xiàn)開(kāi)放課程組《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群5.2.1數(shù)據(jù)預(yù)處理原理5.2數(shù)據(jù)預(yù)處理5.2.2Pandas數(shù)據(jù)預(yù)處理與預(yù)處理數(shù)據(jù)采集大數(shù)據(jù)基礎(chǔ)Unit5

Pandas簡(jiǎn)介Pandas是Python的一個(gè)數(shù)據(jù)分析包,Pandas中引入了兩種新的數(shù)據(jù)結(jié)構(gòu):一維數(shù)組類(lèi)型Series、二維表格類(lèi)型DataFrame。Anaconda已經(jīng)為我們安裝好了Pandas,使用的時(shí)候只需要直接import就可以了。導(dǎo)入命令:importpandasaspd#導(dǎo)入pandas,并取個(gè)別名pd5.2.2Pandas數(shù)據(jù)預(yù)處理

練習(xí)用數(shù)據(jù)文件商品編號(hào)名稱(chēng)產(chǎn)地進(jìn)價(jià)售價(jià)30101蘋(píng)果新疆5630101蘋(píng)果新疆5625211書(shū)包6010030102水晶梨浙江45.5商品編號(hào)名稱(chēng)產(chǎn)地進(jìn)價(jià)售價(jià)30132鳳梨廣東7913704滑板車(chē)上海150200商品編號(hào)庫(kù)存301011002521130301028030132401370415商品信息1.xlsx商品信息2.xlsx商品信息3.xlsx5.2.2Pandas數(shù)據(jù)預(yù)處理

讀取數(shù)據(jù)文件Pandas提供了讀取Excel文件的方法read_excel,參數(shù)中傳遞文件路徑即可讀取文件內(nèi)容,并返回DataFrame類(lèi)型的二維數(shù)據(jù)。

在數(shù)據(jù)文件存放路徑新建程序文件data_preprocessing.py,在程序文件中添加以下代碼讀取數(shù)據(jù)。importpandasaspditem1=pd.read_excel('商品信息1.xlsx')item2=pd.read_excel('商品信息2.xlsx')item3=pd.read_excel('商品信息3.xlsx')print(item1)5.2.2Pandas數(shù)據(jù)預(yù)處理

重復(fù)值處理item1的前兩行內(nèi)容重復(fù),可以使用Pandas的drop_duplicates方法去除重復(fù)項(xiàng)。item_drop_dup=item1.drop_duplicates()print(item_drop_dup)5.2.2Pandas數(shù)據(jù)預(yù)處理

刪除缺失值item_drop_dup的第2行的產(chǎn)地列部分內(nèi)容缺失,Pandas提供了直接刪除缺失行/列的方法,使用dropna方法去除缺失項(xiàng)。item_dropna=item_drop_dup.dropna(axis=1)#axis=1表示刪除列,0表示刪除行print(item_dropna)5.2.2Pandas數(shù)據(jù)預(yù)處理

填充缺失值item_drop_dup的第2行的產(chǎn)地列部分內(nèi)容缺失,除了dropna方法,還可以使用fillna方法填充缺失值,如下例直接填充固定值。item_fillna=item_drop_dup.fillna('未知')print(item_fillna)5.2.2Pandas數(shù)據(jù)預(yù)處理

字段抽取

商品編號(hào)中包含了商品品類(lèi)信息,如30101的前3個(gè)字段表示品類(lèi)。下面從item_drop_dup的商品編號(hào)截取字段,添加品類(lèi)項(xiàng)。item_no=item_drop_dup['商品編號(hào)'].astype(str)#astype轉(zhuǎn)換數(shù)據(jù)類(lèi)型為stritem_drop_dup['品類(lèi)']=item_no.str.slice(0,3)#截取前三個(gè)字段5.2.2Pandas數(shù)據(jù)預(yù)處理

記錄抽取item_fillna數(shù)據(jù)中有多種商品信息,可以通過(guò)條件篩選取得進(jìn)價(jià)在5元以上的商品信息。item_filter=item_fillna[item_fillna['進(jìn)價(jià)']>=5]print(item_filter)5.2.2Pandas數(shù)據(jù)預(yù)處理《大數(shù)據(jù)基礎(chǔ)》在線(xiàn)開(kāi)放課程組《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群5.2.1數(shù)據(jù)預(yù)處理原理5.2數(shù)據(jù)預(yù)處理5.2.2Pandas數(shù)據(jù)預(yù)處理與預(yù)處理數(shù)據(jù)采集大數(shù)據(jù)基礎(chǔ)Unit5

按值排序item_fillna數(shù)據(jù)中有多種商品信息分布無(wú)序,可以通過(guò)排序進(jìn)行重新整理。item_sorted=item_fillna.sort_values(by='進(jìn)價(jià)',ascending=False)#by使用指定列的值進(jìn)行排序,ascending指定排序方向5.2.2Pandas數(shù)據(jù)預(yù)處理

記錄合并item_fillna和item2兩組數(shù)據(jù)有不同商品信息,可以進(jìn)行合并處理。item_concat=pd.concat([item_fillna,item2])#合并兩組商品信息print(item_concat)5.2.2Pandas數(shù)據(jù)預(yù)處理

字段匹配合并item_concat和item3兩組數(shù)據(jù)有不同的列屬性,可以進(jìn)行合并處理。item_merge=pd.merge(left=item_concat,right=item3,

left_on='商品編號(hào)',right_on='商品編號(hào)')5.2.2Pandas數(shù)據(jù)預(yù)處理

簡(jiǎn)單計(jì)算item_merge中的進(jìn)價(jià)和庫(kù)存,可以簡(jiǎn)單計(jì)算求得總成本。item_merge['總成本']=item_merge['進(jìn)價(jià)']*item_merge['庫(kù)存']print(item_merge)5.2.2Pandas數(shù)據(jù)預(yù)處理

數(shù)據(jù)標(biāo)準(zhǔn)化item_merge不同商品的庫(kù)存,可以進(jìn)行標(biāo)準(zhǔn)化處理。標(biāo)準(zhǔn)化是指將數(shù)據(jù)按照比例縮放,使之落入特定的區(qū)間,一般使用0-1標(biāo)準(zhǔn)化。公式如:X=(x-min)/(max-min)max_,min_=item_merge['庫(kù)存'].max(),item_merge['庫(kù)存'].min()item_scaled=(item_merge['庫(kù)存']-min_)/(max_-min_)#標(biāo)準(zhǔn)化fororigin,scaledinzip(item_merge['庫(kù)存'],item_scaled):print('{:>3d}->{:<5.2f}'.format(origin,scaled))#對(duì)比顯示5.2.2Pandas數(shù)據(jù)預(yù)處理

數(shù)據(jù)分組item_merge中庫(kù)存可以按段進(jìn)行劃分,即數(shù)據(jù)分組。數(shù)據(jù)分組:根據(jù)數(shù)據(jù)分析對(duì)象的特征,按照一定的數(shù)據(jù)指標(biāo),把數(shù)據(jù)劃分為不同的區(qū)間來(lái)進(jìn)行研究,以揭示其內(nèi)在的聯(lián)系和規(guī)律性。bins=[0,40,80,1000]#切分區(qū)間lbl=['少','正常','多']#[0-40)為少,[40-80)為正常,[80-1000)為多item_cut=pd.cut(item_merge['庫(kù)存'],bins,right=False,labels=lbl)fororigin,cutinzip(item_merge['庫(kù)存'],item_cut):print('{:>3d}->{}'.format(origin,cut))#對(duì)比顯示5.2.2Pandas數(shù)據(jù)預(yù)處理《大數(shù)據(jù)基礎(chǔ)》在線(xiàn)開(kāi)放課程組《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群訓(xùn)練5-1單元5數(shù)據(jù)采集與預(yù)處理爬取二手房網(wǎng)站數(shù)據(jù)訓(xùn)練同步BigdataHadoop大數(shù)據(jù)基礎(chǔ)pythonUnit5《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群訓(xùn)練5-1:爬取二手房網(wǎng)站數(shù)據(jù)案例目標(biāo)程序訪(fǎng)問(wèn)二手房網(wǎng)站的房源信息頁(yè)面,自動(dòng)抓取最新的二手房信息并進(jìn)行存儲(chǔ)。案例解釋使用BeautifulSoup抓取網(wǎng)頁(yè)數(shù)據(jù),內(nèi)容涉及二手房的小區(qū)、戶(hù)型、面積、單價(jià)、總價(jià)及鏈接。運(yùn)行效果訓(xùn)練5-1:爬取二手房網(wǎng)站數(shù)據(jù)運(yùn)行效果實(shí)現(xiàn)思路基本步驟按實(shí)訓(xùn)要求創(chuàng)建工程并配置環(huán)境。導(dǎo)入項(xiàng)目中用到的BeautifulSoup、requests、pandas包。二手房鏈接,:5000,獲取網(wǎng)頁(yè)內(nèi)容并解碼為文本格式,之后用html.parser解析為BeautifulSoup對(duì)象。使用瀏覽器的檢查功能找到最新二手房列表對(duì)應(yīng)的標(biāo)簽?zāi)J?。使用BeautifulSoup的select方法獲取元素標(biāo)簽列表,與網(wǎng)頁(yè)內(nèi)容進(jìn)行對(duì)比驗(yàn)證。進(jìn)一步使用select方法解析出第一套二手房的各項(xiàng)屬性值。迭代處理所有30套二手房信息,將結(jié)果存放在列表中。將數(shù)據(jù)轉(zhuǎn)換為DataFrame類(lèi)型,使用to_excel方法存儲(chǔ)數(shù)據(jù)。訓(xùn)練5-1:爬取二手房網(wǎng)站數(shù)據(jù)《大數(shù)據(jù)基礎(chǔ)》在線(xiàn)開(kāi)放課程組《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群與挖掘數(shù)據(jù)分析大數(shù)據(jù)基礎(chǔ)Unit6《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群6.1.1數(shù)據(jù)分析簡(jiǎn)介6.1.2數(shù)據(jù)挖掘簡(jiǎn)介6.1.3pandas數(shù)據(jù)分析6.1數(shù)據(jù)分析與挖掘簡(jiǎn)介6.1.1數(shù)據(jù)分析簡(jiǎn)介1數(shù)據(jù)分析的定義數(shù)據(jù)分析是指用適當(dāng)?shù)慕y(tǒng)計(jì)分析方法對(duì)收集來(lái)的大量數(shù)據(jù)進(jìn)行分析,提取有用信息和形成結(jié)論而對(duì)數(shù)據(jù)加以詳細(xì)研究和概括總結(jié)的過(guò)程。

數(shù)據(jù)分析的數(shù)學(xué)基礎(chǔ)在20世紀(jì)早期就已確立,但直到計(jì)算機(jī)的出現(xiàn)才使得實(shí)際操作成為可能,并使得數(shù)據(jù)分析得以推廣。6.1.1數(shù)據(jù)分析簡(jiǎn)介2數(shù)據(jù)分析的分類(lèi)

按統(tǒng)計(jì)學(xué)領(lǐng)域劃分

描述性數(shù)據(jù)分析、探索性數(shù)據(jù)分析以及驗(yàn)證性數(shù)據(jù)分析。

描述性數(shù)據(jù)分析屬于初級(jí)數(shù)據(jù)分析,常見(jiàn)的分析方法有對(duì)比分析法、平均分析法、交叉分析法。在日常學(xué)習(xí)和工作中涉及的數(shù)據(jù)分析主要是描述性數(shù)據(jù)分析。

探索性分析和驗(yàn)證性分析屬于高級(jí)數(shù)據(jù)分析,常見(jiàn)的分析方法有相關(guān)分析、因子分析、回歸分析等。探索性分析側(cè)重于在數(shù)據(jù)中發(fā)現(xiàn)新的特征,驗(yàn)證性數(shù)據(jù)分析側(cè)重于驗(yàn)證已有假設(shè)的真?zhèn)巫C明。6.1.1數(shù)據(jù)分析簡(jiǎn)介3數(shù)據(jù)分析的作用(1)現(xiàn)狀分析(2)原因分析(3)預(yù)測(cè)分析就是告訴你過(guò)去發(fā)生了什么,一般通過(guò)日常通報(bào)完成,如日?qǐng)?bào)、周報(bào)、月報(bào)等,開(kāi)展頻率頻繁。就是在現(xiàn)狀分析的基礎(chǔ)上,就某一個(gè)特定現(xiàn)狀為什么發(fā)生而發(fā)起的分析。比如:某年的2月份運(yùn)營(yíng)收入環(huán)比下降5%,是什么原因?qū)е碌??就是告訴你將來(lái)會(huì)發(fā)生什么。通常用于制定企業(yè)季度、年度計(jì)劃等。開(kāi)展頻率低。6.1.1數(shù)據(jù)分析簡(jiǎn)介4數(shù)據(jù)分析流程(1)明確目的和思路數(shù)據(jù)分析必須有一個(gè)明確目的,再根據(jù)分析目的梳理分析思路,搭建分析框架,規(guī)劃后續(xù)步驟所選擇的分析方法等。(2)數(shù)據(jù)收集在明確目的和思路的基礎(chǔ)上,有目的的收集必要的、可能來(lái)自多途徑的數(shù)據(jù)。數(shù)據(jù)來(lái)源可能是數(shù)據(jù)庫(kù)、公開(kāi)出版物、互聯(lián)網(wǎng)、市場(chǎng)調(diào)查等。但收集到的數(shù)據(jù)往往雜亂無(wú)章、難以理解、數(shù)量龐大。6.1.1數(shù)據(jù)分析簡(jiǎn)介4數(shù)據(jù)分析流程(3)數(shù)據(jù)處理對(duì)搜集的數(shù)據(jù)進(jìn)行加工整理,形成對(duì)解決問(wèn)題、數(shù)據(jù)分析有價(jià)值的數(shù)據(jù)。數(shù)據(jù)處理的方法包括數(shù)據(jù)清洗、數(shù)據(jù)轉(zhuǎn)化、數(shù)據(jù)提取、數(shù)據(jù)計(jì)算等。(4)數(shù)據(jù)分析數(shù)據(jù)處理過(guò)后,就會(huì)依據(jù)分析目的和思路,選用合適的數(shù)據(jù)分析方法對(duì)數(shù)據(jù)開(kāi)展分析。一般的數(shù)據(jù)分析可以通過(guò)excel完成,高級(jí)數(shù)據(jù)分析就要采用如專(zhuān)業(yè)分析軟件spss、或python數(shù)據(jù)分析庫(kù)等進(jìn)行。6.1.1數(shù)據(jù)分析簡(jiǎn)介4數(shù)據(jù)分析流程(5)數(shù)據(jù)展現(xiàn)數(shù)據(jù)分析結(jié)果通過(guò)圖、表進(jìn)行可視化展現(xiàn)。一般情況下,能用圖說(shuō)明問(wèn)題的就不要用表格,能用表格說(shuō)明問(wèn)題的不要用文字。(6)報(bào)告撰寫(xiě)數(shù)據(jù)分析報(bào)告把起因、過(guò)程、結(jié)果及建議完整的呈現(xiàn)出來(lái),供決策者參考。報(bào)告通過(guò)對(duì)數(shù)據(jù)全方位的科學(xué)分析來(lái)評(píng)估運(yùn)營(yíng)質(zhì)量,為決策者提供科學(xué)、嚴(yán)謹(jǐn)?shù)臎Q策依據(jù),以降低企業(yè)運(yùn)營(yíng)風(fēng)險(xiǎn),提高企業(yè)核心競(jìng)爭(zhēng)力?!洞髷?shù)據(jù)基礎(chǔ)》在線(xiàn)開(kāi)放課程組《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群與挖掘數(shù)據(jù)分析大數(shù)據(jù)基礎(chǔ)Unit6《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群6.1.1數(shù)據(jù)分析簡(jiǎn)介6.1.2數(shù)據(jù)挖掘簡(jiǎn)介6.1.3pandas數(shù)據(jù)分析6.1數(shù)據(jù)分析與挖掘簡(jiǎn)介6.1.2數(shù)據(jù)挖掘簡(jiǎn)介1數(shù)據(jù)挖掘的定義數(shù)據(jù)挖掘是指從大量的數(shù)據(jù)中,通過(guò)統(tǒng)計(jì)學(xué)、人工智能、機(jī)器學(xué)習(xí)等方法,挖掘出未知的、且有價(jià)值的信息和知識(shí)的過(guò)程。數(shù)據(jù)分析可以分為廣義的數(shù)據(jù)分析和狹義的數(shù)據(jù)分析。上一節(jié)所講的數(shù)據(jù)分析就是狹義的數(shù)據(jù)分析,而廣義的數(shù)據(jù)分析還包括數(shù)據(jù)挖掘。6.1.2數(shù)據(jù)挖掘簡(jiǎn)介2數(shù)據(jù)分析與數(shù)據(jù)挖掘的比較

相同點(diǎn)數(shù)據(jù)分析與數(shù)據(jù)挖掘的本質(zhì)都是一樣的,都是從數(shù)據(jù)里面發(fā)現(xiàn)關(guān)于業(yè)務(wù)的知識(shí)、有價(jià)值的信息,從而幫助業(yè)務(wù)運(yùn)營(yíng)、改進(jìn)產(chǎn)品以及幫助企業(yè)做更好的決策,所以數(shù)據(jù)分析與數(shù)據(jù)挖掘一起構(gòu)成了廣義的數(shù)據(jù)分析。6.1.2數(shù)據(jù)挖掘簡(jiǎn)介2數(shù)據(jù)分析與數(shù)據(jù)挖掘的比較

目的的不同數(shù)據(jù)分析有明確的目標(biāo),先假設(shè)數(shù)據(jù)存在某種模型,然后通過(guò)統(tǒng)計(jì)分析方法來(lái)驗(yàn)證假設(shè)是否正確,或者有明確的統(tǒng)計(jì)指標(biāo),使用統(tǒng)計(jì)分析方法來(lái)得到這些指標(biāo)值,從而結(jié)合業(yè)務(wù)得出結(jié)論。數(shù)據(jù)挖掘是事先對(duì)于數(shù)據(jù)中的模型難以假設(shè),通過(guò)數(shù)據(jù)挖掘算法尋找未知的模型。6.1.2數(shù)據(jù)挖掘簡(jiǎn)介2數(shù)據(jù)分析與數(shù)據(jù)挖掘的比較

方法的不同數(shù)據(jù)分析會(huì)采用對(duì)比分析、分組分析、交叉分析、回歸分析等常用統(tǒng)計(jì)分析方法。數(shù)據(jù)挖掘會(huì)采用決策樹(shù)、關(guān)聯(lián)規(guī)則、聚類(lèi)、分類(lèi)、神經(jīng)網(wǎng)絡(luò)等統(tǒng)計(jì)學(xué)、人工智能算法、機(jī)器學(xué)習(xí)算法等方法。6.1.2數(shù)據(jù)挖掘簡(jiǎn)介2數(shù)據(jù)分析與數(shù)據(jù)挖掘的比較

結(jié)果的不同數(shù)據(jù)分析一般都得到一些統(tǒng)計(jì)量結(jié)果,如總和、平均值等,這些數(shù)據(jù)都需要與業(yè)務(wù)結(jié)合進(jìn)行解讀,才能發(fā)揮出數(shù)據(jù)的價(jià)值。數(shù)據(jù)挖掘會(huì)輸出挖掘到的模型,這個(gè)模型會(huì)被應(yīng)用到對(duì)新的數(shù)據(jù)的預(yù)測(cè)上。6.1.2數(shù)據(jù)挖掘簡(jiǎn)介3數(shù)據(jù)挖掘的流程明確目的和思路數(shù)據(jù)收集數(shù)據(jù)處理構(gòu)建模型模型評(píng)價(jià)模型發(fā)布數(shù)據(jù)分析流程:明確目的和思路->數(shù)據(jù)收集->數(shù)據(jù)處理->數(shù)據(jù)分析->數(shù)據(jù)展現(xiàn)->報(bào)告撰寫(xiě)6.1.2數(shù)據(jù)挖掘簡(jiǎn)介模型訓(xùn)練數(shù)據(jù)挖掘算法選擇訓(xùn)練數(shù)據(jù)集模型評(píng)價(jià)測(cè)試數(shù)據(jù)集輸入算法輸入評(píng)估模型好不好?不好模型發(fā)布好新的數(shù)據(jù)輸入預(yù)測(cè)結(jié)果輸出4數(shù)據(jù)挖掘的模型創(chuàng)建過(guò)程《大數(shù)據(jù)基礎(chǔ)》在線(xiàn)開(kāi)放課程組《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群與挖掘數(shù)據(jù)分析大數(shù)據(jù)基礎(chǔ)Unit6《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群6.1.1數(shù)據(jù)分析簡(jiǎn)介6.1.2數(shù)據(jù)挖掘簡(jiǎn)介6.1.3pandas數(shù)據(jù)分析6.1數(shù)據(jù)分析與挖掘簡(jiǎn)介6.1.3pandas數(shù)據(jù)分析1統(tǒng)計(jì)方法

Pandas庫(kù)是進(jìn)行數(shù)據(jù)預(yù)處理的強(qiáng)有力工具,也是開(kāi)展數(shù)據(jù)分析的強(qiáng)有力工具。Pandas的DataFrame或Series對(duì)象都提供了大量的統(tǒng)計(jì)方法,用于實(shí)現(xiàn)數(shù)值型數(shù)據(jù)的各類(lèi)型統(tǒng)計(jì)運(yùn)算,注意這些方法都自動(dòng)忽略缺失值。

常見(jiàn)的統(tǒng)計(jì)方法有統(tǒng)計(jì)個(gè)數(shù)count、最大值max、最小值min,總和sum、平均值mean,方差var和標(biāo)準(zhǔn)差std等。例如:data=pd.Series([2,3,5,7,11,13,17,19])

data.mean()6.1.3pandas數(shù)據(jù)分析2分組統(tǒng)計(jì)

前面的統(tǒng)計(jì)方法能夠讓我們對(duì)Series類(lèi)型的一列數(shù)值型數(shù)據(jù)有個(gè)比較籠統(tǒng)的認(rèn)識(shí),但要呈現(xiàn)豐富的描述性數(shù)據(jù)分析,就需要開(kāi)展分組統(tǒng)計(jì)。

分組統(tǒng)計(jì)需要有一個(gè)被分組的數(shù)據(jù)集,主要是數(shù)值類(lèi)型的Series對(duì)象,分組統(tǒng)計(jì)還需要選擇合適的標(biāo)簽作為分組鍵,作為分組鍵的數(shù)據(jù)會(huì)選用能夠呈現(xiàn)類(lèi)別的Series對(duì)象。6.1.3pandas數(shù)據(jù)分析2分組統(tǒng)計(jì)

如圖所示,圖中最左側(cè)兩列數(shù)據(jù)分別是分組鍵和待分組數(shù)據(jù),分組統(tǒng)計(jì)需要經(jīng)過(guò)拆分、應(yīng)用、合并3個(gè)步驟:

第一步,根據(jù)分組鍵進(jìn)行拆分,將同一個(gè)鍵的數(shù)據(jù)合并成小的數(shù)據(jù)集。

第二步,根據(jù)分析需要,對(duì)每個(gè)小的數(shù)據(jù)集選用一個(gè)統(tǒng)計(jì)分析方法,這就是應(yīng)用,最終,每個(gè)小的數(shù)據(jù)集各會(huì)得到一個(gè)統(tǒng)計(jì)值。

第三步,最后是合并,將各組的統(tǒng)計(jì)值合并在一起。6.1.3pandas數(shù)據(jù)分析2分組統(tǒng)計(jì)pandas的DataFrame或Series對(duì)象都提供了方法groupby用于處理分組,返回一個(gè)DataFrameGroupBy或SeriesGroupBy對(duì)象,它的基本格式為:

DataFrame.groupby(by,….)或Series.groupby(by,…)其中DataFrame或Series對(duì)象是待分組的數(shù)據(jù)集,都能調(diào)用方法groupby,方法內(nèi)的參數(shù)by是分組鍵。例如:data=pd.Series([0,5,10,5,10,15,10,15,20])key=pd.Series([‘A’,‘B’,‘C’,‘A’,‘B’,‘C’,‘A’,‘B’,‘C’])data.groupby(key).sum()《大數(shù)據(jù)基礎(chǔ)》在線(xiàn)開(kāi)放課程組《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群與挖掘數(shù)據(jù)分析大數(shù)據(jù)基礎(chǔ)Unit6《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群6.2.1數(shù)據(jù)挖掘算法分類(lèi)6.2.2數(shù)據(jù)挖掘算法典型應(yīng)用6.2數(shù)據(jù)挖掘常用算法6.2.1數(shù)據(jù)挖掘算法分類(lèi)1數(shù)據(jù)挖掘算法概述在數(shù)據(jù)挖掘的模型創(chuàng)建過(guò)程中,數(shù)據(jù)挖掘算法在模型訓(xùn)練中起到了非常重要的作用。國(guó)際權(quán)威的學(xué)術(shù)組織theIEEEInternationalConferenceonDataMining(ICDM)在2006年12月評(píng)選出了數(shù)據(jù)挖掘領(lǐng)域的十大經(jīng)典算法:C4.5,k-Means,SVM,Apriori,EM,PageRank,AdaBoost,kNN,NaiveBayes,和CART。其實(shí)參加評(píng)選的18種算法,隨便拿出一種來(lái)都可以稱(chēng)得上是經(jīng)典算法,它們?cè)跀?shù)據(jù)挖掘領(lǐng)域都產(chǎn)生了極為深遠(yuǎn)的影響。

還有很多數(shù)據(jù)挖掘算法在特定場(chǎng)合下發(fā)揮著作用。6.2.1數(shù)據(jù)挖掘算法分類(lèi)是指對(duì)數(shù)據(jù)的若干特征與若干標(biāo)簽之間的關(guān)聯(lián)性進(jìn)行建模的過(guò)程。包括分類(lèi)、回歸兩大類(lèi)算法。例如:描述一個(gè)人的身高、體重是特征、是否肥胖是標(biāo)簽。有監(jiān)督學(xué)習(xí)是指對(duì)只帶若干特征而不帶任何標(biāo)簽的數(shù)據(jù)進(jìn)行建模,去分析數(shù)據(jù)本身的內(nèi)在特點(diǎn)和結(jié)構(gòu)。包括聚類(lèi)、降維兩大類(lèi)算法。例如:只描述一個(gè)人的身高和體重。無(wú)監(jiān)督學(xué)習(xí)介于有監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí)之間,通常用在數(shù)據(jù)標(biāo)簽不完整的情況。包括了半監(jiān)督分類(lèi)、半監(jiān)督回歸、半監(jiān)督聚類(lèi)、半監(jiān)督降維算法。

半監(jiān)督學(xué)習(xí)2數(shù)據(jù)挖掘常用算法的分類(lèi)6.2.1數(shù)據(jù)挖掘算法分類(lèi)3有監(jiān)督學(xué)習(xí)算法劃分分類(lèi)回歸12有監(jiān)督學(xué)習(xí)算法劃分分類(lèi)任務(wù)中,標(biāo)簽都是離散值。比如決策樹(shù)算法、樸素貝葉斯算法等?;貧w任務(wù)中,標(biāo)簽都是連續(xù)值。比如線(xiàn)性回歸算法等。6.2.1數(shù)據(jù)挖掘算法分類(lèi)4無(wú)監(jiān)督學(xué)習(xí)算法劃分聚類(lèi)降維12無(wú)監(jiān)督學(xué)習(xí)算法劃分聚類(lèi)任務(wù)中,沒(méi)有標(biāo)簽,主要是將數(shù)據(jù)分成不同的組別。如kmeans聚類(lèi)算法等。降維任務(wù),主要是為了用更簡(jiǎn)潔的方式表示數(shù)據(jù)。如主成分分析等。《大數(shù)據(jù)基礎(chǔ)》在線(xiàn)開(kāi)放課程組《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群與挖掘數(shù)據(jù)分析大數(shù)據(jù)基礎(chǔ)Unit6《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群6.2.1數(shù)據(jù)挖掘算法分類(lèi)6.2.2數(shù)據(jù)挖掘算法典型應(yīng)用6.2數(shù)據(jù)挖掘常用算法6.2.2數(shù)據(jù)挖掘算法典型應(yīng)用問(wèn)題描述:已知某銀行的一批用戶(hù)數(shù)據(jù),涉及貸款申請(qǐng)情況,包含年齡、是否有工作、是否有房子、信用等級(jí)等4個(gè)特征,而是否允許貸款申請(qǐng)(只有兩個(gè)離散值,Yes或No)構(gòu)成了1個(gè)標(biāo)簽。當(dāng)有一個(gè)新的貸款申請(qǐng)者提供了4個(gè)特征的值,請(qǐng)構(gòu)建模型預(yù)測(cè)是否會(huì)允許貸款?1有監(jiān)督學(xué)習(xí)之分類(lèi)算法案例6.2.2數(shù)據(jù)挖掘算法典型應(yīng)用問(wèn)題描述:已知坐標(biāo)系的點(diǎn)的坐標(biāo)(x,y)表示的分別是面積為x的房屋的銷(xiāo)售價(jià)格是y?,F(xiàn)有一批點(diǎn)表示不同面積的房屋的銷(xiāo)售價(jià)格。當(dāng)有一個(gè)新的房屋面積為X,請(qǐng)構(gòu)建模型預(yù)測(cè)銷(xiāo)售價(jià)格Y?(注:房屋面積是特征、價(jià)格是標(biāo)簽,且價(jià)格是連續(xù)值。)2有監(jiān)督學(xué)習(xí)之回歸算法案例6.2.2數(shù)據(jù)挖掘算法典型應(yīng)用問(wèn)題描述:如果坐標(biāo)系的點(diǎn)的坐標(biāo)(x,y)仍舊表示的分別是面積為x的房屋的銷(xiāo)售價(jià)格是y。x,y都看成特征?,F(xiàn)有一批點(diǎn)表示不同面積的房屋銷(xiāo)售價(jià)格時(shí),那么,可以通過(guò)什么方式將這批房屋分成3組呢?(注:x,y都是特征,沒(méi)有標(biāo)簽)3無(wú)監(jiān)督學(xué)習(xí)之聚類(lèi)算法案例6.2.2數(shù)據(jù)挖掘算法典型應(yīng)用4無(wú)監(jiān)督學(xué)習(xí)之降維算法案例問(wèn)題描述:已知某銀行的一批用戶(hù)數(shù)據(jù),包含年齡、是否有工作、是否有房子、信用等級(jí)等4個(gè)特征,沒(méi)有標(biāo)簽。假設(shè)為了減少分析的復(fù)雜度和減少存儲(chǔ)容量,試分析能否在保留較大的有效信息的情況下,刪除一個(gè)字段?6.2.2數(shù)據(jù)挖掘算法典型應(yīng)用5用scikit-Learn實(shí)現(xiàn)KNN分類(lèi)應(yīng)用《大數(shù)據(jù)基礎(chǔ)》在線(xiàn)開(kāi)放課程組《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群訓(xùn)練6-1單元6數(shù)據(jù)分析與挖掘python電商統(tǒng)計(jì)分析訓(xùn)練同步Bigdataeclipseeclipse大數(shù)據(jù)基礎(chǔ)pythonUnit6《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群訓(xùn)練6-1:python電商數(shù)據(jù)分析訓(xùn)練目標(biāo)已知某電商公司在2010-2013年的銷(xiāo)售數(shù)據(jù)表(含6000條數(shù)據(jù)),試分析歷年的銷(xiāo)售總額和利潤(rùn)的總額。訓(xùn)練解釋基于python數(shù)據(jù)分析,分別統(tǒng)計(jì)2010-2013年間每年的銷(xiāo)售總額和利潤(rùn)總額。案例效果實(shí)現(xiàn)思路基本步驟按實(shí)訓(xùn)要求準(zhǔn)備好銷(xiāo)售數(shù)據(jù)表,存放的路徑設(shè)定為D:/銷(xiāo)售數(shù)據(jù).xlsx打開(kāi)Anaconda的Spyder,并選擇Ipythonconsol,在控制臺(tái)依據(jù)命令行依次操作。(1)導(dǎo)入包pandas。

(2)導(dǎo)入銷(xiāo)售數(shù)據(jù)表為DataFrame對(duì)象。(3)從“發(fā)貨日期”抽取“年份”。

(4)依據(jù)“年份”分組統(tǒng)計(jì)銷(xiāo)售總額和利潤(rùn)總額。(5)將統(tǒng)計(jì)的各年份的銷(xiāo)售總額和利潤(rùn)總額輸出顯示。訓(xùn)練6-1:python電商數(shù)據(jù)分析《大數(shù)據(jù)基礎(chǔ)》在線(xiàn)開(kāi)放課程組《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群數(shù)據(jù)可視化大數(shù)據(jù)基礎(chǔ)Unit7《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群7.1.1什么是數(shù)據(jù)可視化7.1數(shù)據(jù)可視化7.1.2可視化的重要作用7.1.1什么是數(shù)據(jù)可視化1數(shù)據(jù)可視化

現(xiàn)狀:隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,尤其是移動(dòng)互聯(lián)網(wǎng)技術(shù)的發(fā)展,網(wǎng)絡(luò)空間的數(shù)據(jù)量呈現(xiàn)出爆炸式增長(zhǎng)。問(wèn)題:如何從這些數(shù)據(jù)中快速獲取自己想要的信息,并以一種直觀、形象的方式展現(xiàn)出來(lái)?

數(shù)據(jù)可視化直觀形象的展示數(shù)據(jù)7.1.1什么是數(shù)據(jù)可視化1數(shù)據(jù)可視化是一門(mén)關(guān)于數(shù)據(jù)視覺(jué)表現(xiàn)形式的科學(xué)技術(shù)研究指借助于圖形化手段傳達(dá)信息,對(duì)數(shù)據(jù)進(jìn)行交互分析通過(guò)圖表形式展現(xiàn)數(shù)據(jù),幫助用戶(hù)快速、準(zhǔn)確理解信息2數(shù)據(jù)可視化的基本特征易懂性:可視化使得碎片化的數(shù)據(jù)轉(zhuǎn)換為具有特定結(jié)構(gòu)的知識(shí),從而為決策支持提供幫助必然性:大數(shù)據(jù)所產(chǎn)生的數(shù)據(jù)量必然要求人們對(duì)數(shù)據(jù)進(jìn)行歸納總結(jié),對(duì)數(shù)據(jù)的結(jié)構(gòu)和形式進(jìn)行轉(zhuǎn)換處理片面性:數(shù)據(jù)可視化的片面性特征要求可視化模式不能替代數(shù)據(jù)本身,只能作為數(shù)據(jù)表達(dá)的一種特定形式專(zhuān)業(yè)性:專(zhuān)業(yè)化特征是人們從可視化模型中提取專(zhuān)業(yè)知識(shí)的環(huán)節(jié),它是數(shù)據(jù)可視化應(yīng)用的最后流程7.1.1什么是數(shù)據(jù)可視化《大數(shù)據(jù)基礎(chǔ)》在線(xiàn)開(kāi)放課程組《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群大數(shù)據(jù)基礎(chǔ)Unit7《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群7.1.1什么是數(shù)據(jù)可視化7.1數(shù)據(jù)可視化7.1.2可視化的重要作用數(shù)據(jù)可視化1數(shù)據(jù)可視化的作用

數(shù)據(jù)可視化的作用主要包括數(shù)據(jù)表達(dá)、數(shù)據(jù)操作和數(shù)據(jù)分析等三個(gè)方面。數(shù)據(jù)表達(dá):表達(dá)數(shù)據(jù),方便人們閱讀、理解和運(yùn)用數(shù)據(jù)。

7.1.2可視化的重要作用可視化數(shù)據(jù)表達(dá)利用系列線(xiàn)型圖來(lái)可視化展示某網(wǎng)站的運(yùn)營(yíng)推廣數(shù)據(jù)7.1.2可視化的重要作用1數(shù)據(jù)可視化的作用數(shù)據(jù)操作

數(shù)據(jù)操作是以計(jì)算機(jī)提供的界面、接口、協(xié)議等條件為基礎(chǔ)完成人與數(shù)據(jù)的交互需求,數(shù)據(jù)操作需要友好的人機(jī)交互技術(shù)、標(biāo)準(zhǔn)化的接口和協(xié)議支持來(lái)完成對(duì)多數(shù)據(jù)集合或者分布式的操作。

數(shù)據(jù)分析

數(shù)據(jù)可視化是數(shù)據(jù)分析和機(jī)器學(xué)習(xí)的重要環(huán)節(jié),比如數(shù)據(jù)清洗、特征工程、機(jī)器學(xué)習(xí)、數(shù)據(jù)分析、評(píng)估等環(huán)節(jié)都會(huì)用到“數(shù)據(jù)可視化”技術(shù)。7.1.2可視化的重要作用7.2.3

Matplotlib數(shù)據(jù)可視化可視化數(shù)據(jù)分析在本例圖中,我們展示出了如何通過(guò)數(shù)據(jù)可視化工具來(lái)分析數(shù)據(jù)。上面四張子圖分別展示了兩個(gè)數(shù)據(jù)集中數(shù)據(jù)間的相關(guān)關(guān)系。7.1.2可視化的重要作用《大數(shù)據(jù)基礎(chǔ)》在線(xiàn)開(kāi)放課程組《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群大數(shù)據(jù)基礎(chǔ)Unit7《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群7.2.1ECharts數(shù)據(jù)可視化7.2可視化工具7.2.2PyECharts數(shù)據(jù)可視化7.2.3Matplotlib數(shù)據(jù)可視化數(shù)據(jù)可視化7.2.1ECharts數(shù)據(jù)可視化1Echarts簡(jiǎn)介ECharts已經(jīng)可以支持包括折線(xiàn)圖、柱狀圖、散點(diǎn)圖、K線(xiàn)圖、餅圖、雷達(dá)圖、地圖等圖表,同時(shí)提供標(biāo)題、圖例、值域、時(shí)間軸、工具箱等可交互組件,支持多圖表、組件的聯(lián)動(dòng)和混搭展現(xiàn)。

ECharts制作的圖表7.2.1ECharts數(shù)據(jù)可視化2數(shù)據(jù)可視化來(lái)源訪(fǎng)問(wèn)(次)視頻廣告300搜索引擎1048郵件580聯(lián)盟廣告484……某網(wǎng)站訪(fǎng)問(wèn)來(lái)源相關(guān)數(shù)據(jù)樣例

接下來(lái),我們通過(guò)對(duì)某個(gè)網(wǎng)站的訪(fǎng)問(wèn)來(lái)源相關(guān)的數(shù)據(jù)進(jìn)行可視化,來(lái)詳細(xì)介紹一下ECharts的使用方法。如右圖所示是這個(gè)網(wǎng)站的訪(fǎng)問(wèn)來(lái)源的數(shù)據(jù)樣例。7.2.1ECharts數(shù)據(jù)可視化數(shù)據(jù)可視化展示在本例中,我們利用Echarts實(shí)現(xiàn)了某站點(diǎn)訪(fǎng)問(wèn)來(lái)源的數(shù)據(jù)可視化展現(xiàn),展現(xiàn)結(jié)果如上圖所示。7.2.1ECharts數(shù)據(jù)可視化數(shù)據(jù)可視化展示

點(diǎn)擊右側(cè)工具箱中的數(shù)據(jù)視圖按鈕,可以得到數(shù)據(jù)視圖頁(yè)面,展示效果如上圖所示。7.2.1ECharts數(shù)據(jù)可視化

vardom=

document.getElementById('container');varmyChart=echarts.init(dom,null,{renderer:'canvas',useDirtyRect:false});varoption;option={title:{text:'某站點(diǎn)訪(fǎng)問(wèn)來(lái)源',subtext:'測(cè)試數(shù)據(jù)',left:'center'},tooltip:{trigger:'item'},

示例程序toolbox:{show:true,orient:'vertical',x:'right',y:'center',feature:{mark:{show:true},dataView:{show:true,readOnly:false}}},legend:{orient:'vertical',left:'left'},7.2.1ECharts數(shù)據(jù)可視化series:[{name:'訪(fǎng)問(wèn)來(lái)源',type:'pie',radius:'50%',data:[{value:1048,name:'搜索引擎'},{value:735,name:'直接訪(fǎng)問(wèn)'},{value:580,name:'郵件'},{value:484,name:'聯(lián)盟廣告'},{value:300,name:'視頻廣告'}],emphasis:{itemStyle:{shadowBlur:10,shadowOffsetX:0,shadowColor:'rgba(0,0,0,0.5)'}}}]};示例程序

if(option&&typeofoption==='object'){myChart.setOption(option);}window.addEventListener('resize',myChart.resize);《大數(shù)據(jù)基礎(chǔ)》在線(xiàn)開(kāi)放課程組《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群大數(shù)據(jù)基礎(chǔ)Unit7《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群7.2.1ECharts數(shù)據(jù)可視化7.2可視化工具7.2.2PyECharts數(shù)據(jù)可視化7.2.3Matplotlib數(shù)據(jù)可視化數(shù)據(jù)可視化7.2.2PyECharts數(shù)據(jù)可視化1PyEcharts簡(jiǎn)介PyEcharts是一個(gè)用于生成Echarts圖表的類(lèi)庫(kù),實(shí)際上就是Echarts與Python的對(duì)接PyECharts同樣支持Echarts中各類(lèi)圖表的繪制

7.2.2PyECharts數(shù)據(jù)可視化2數(shù)據(jù)可視化使用PyECharts展示2011年全國(guó)GDP數(shù)據(jù)的圖表。如圖所示是2011年全國(guó)GDP數(shù)據(jù)。城市GDP(億元)西藏605.83青海1

670.44寧夏2102.21海南2522.66……2011年中國(guó)全國(guó)GDP

7.2.2PyECharts數(shù)據(jù)可視化importrefrompyechartsimportMap#省和直轄市province_distribution={'河南':26931.03,'北京':16251.93,'河北':24515.76,'遼寧':22226.7,'浙江':32318.85,……}provice=list(province_distribution.keys())values=list(province_distribution.values())map=Map("2011年全國(guó)GDP數(shù)據(jù)",'2011年全國(guó)GDP數(shù)據(jù)',width=600,height=300)map.add("ChinaMap",provice,values,visual_range=[0,50],maptype='china',is_visualmap=True,visual_text_color='#000')map.render(path="2011年全國(guó)GDP數(shù)據(jù).html")示例程序7.2.2PyECharts數(shù)據(jù)可視化數(shù)據(jù)可視化展示結(jié)果在本例中,我們利用PyEcharts實(shí)現(xiàn)了2011年全國(guó)各地區(qū)GDP數(shù)據(jù)的展示?!洞髷?shù)據(jù)基礎(chǔ)》在線(xiàn)開(kāi)放課程組《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群大數(shù)據(jù)基礎(chǔ)Unit7《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群7.2.1ECharts數(shù)據(jù)可視化7.2可視化工具7.2.2PyECharts數(shù)據(jù)可視化7.2.3

Matplotlib數(shù)據(jù)可視化數(shù)據(jù)可視化7.2.3

Matplotlib數(shù)據(jù)可視化1Matplotlib簡(jiǎn)介Matplotlib是一個(gè)Python繪圖庫(kù)。只需幾行代碼即可生成柱狀圖,直方圖,功率譜,條形圖,極線(xiàn)圖,餅圖,散點(diǎn)圖等。

7.2.3

Matplotlib數(shù)據(jù)可視化數(shù)據(jù)可視化使用Matplotlib繪制折線(xiàn)圖、柱狀圖、水平柱狀圖、堆積柱狀圖、箱線(xiàn)圖、散點(diǎn)圖。7.2.3

Matplotlib數(shù)據(jù)可視化frommatplotlib.pyplotimport*x=[1,2,3,4]y=[5,4,3,2]figure()#線(xiàn)形圖subplot(231)plot(x,y)#柱狀圖subplot(232)bar(x,y)#水平柱狀圖subplot(233)barh(x,y)示例程序#堆積柱狀圖subplot(234)bar(x,y)y1=[7,8,5,3]bar(x,y1,bottom=y,color='r')#繪制箱型圖subplot(235)boxplot(x)#繪制散點(diǎn)圖subplot(236)scatter(x,y)7.2.3

Matplotlib數(shù)據(jù)可視化數(shù)據(jù)可視化使用Matplotlib可視化某在線(xiàn)教育網(wǎng)站教程點(diǎn)擊量數(shù)據(jù)7.2.3

Matplotlib數(shù)據(jù)可視化importmatplotlib.pyplotaspltx_data=['2013','2014','2015','2016','2017','2018','2019']#定義2個(gè)列表分別作為兩條折線(xiàn)的Y軸數(shù)據(jù)y_data=[58000,60200,63000,71000,84000,90500,107000]y_data2=[52000,54200,51500,58300,56800,59500,62700]#指定折線(xiàn)的顏色、線(xiàn)寬和樣式plt.plot(x_data,y_data,color='red',linewidth=2.0,linestyle='--',label='Java基礎(chǔ)')示例程序plt.plot(x_data,y_data2,color='blue',linewidth=3.0,linestyle='-.',label='Python基礎(chǔ)')#用來(lái)正常顯示中文plt.rcParams['font.sans-serif']=['SimHei']#調(diào)用legend函數(shù)設(shè)置圖例plt.legend(loc='best')#設(shè)置兩條坐標(biāo)軸的名字plt.xlabel("年份")plt.ylabel("教程點(diǎn)擊量")#設(shè)置數(shù)據(jù)圖的標(biāo)題plt.title('某在線(xiàn)教育網(wǎng)站教程點(diǎn)擊量')7.2.3

Matplotlib數(shù)據(jù)可視化#設(shè)置Y軸上的刻度值#第一個(gè)參數(shù)是點(diǎn)的位置,第二個(gè)參數(shù)是點(diǎn)的文字提示plt.yticks([50000,100000,150000],[r'良好',r'優(yōu)秀',r'火爆'])ax=plt.gca()#設(shè)置將X軸的刻度值放在底部X軸上ax.xaxis.set_ticks_position('bottom')#設(shè)置將Y軸的刻度值放在左邊軸上ax.yaxis.set_ticks_position('left')#設(shè)置右邊坐標(biāo)軸線(xiàn)的顏色(設(shè)置為none表示不顯示)ax.spines['right'].set_color('none')示例程序#設(shè)置頂部坐標(biāo)軸線(xiàn)的顏色(設(shè)置為none表示不顯示)ax.spines['top'].set_color('none')#定義底部坐標(biāo)軸線(xiàn)的位置(放在100000數(shù)值處)ax.spines['bottom'].set_position(('data',100000))#調(diào)用show()函數(shù)顯示圖形plt.show()《大數(shù)據(jù)基礎(chǔ)》在線(xiàn)開(kāi)放課程組《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群訓(xùn)練

7-1單元7

數(shù)據(jù)可視化利用PyECharts展示電商交易數(shù)據(jù)訓(xùn)練同步BigdataHadoop大數(shù)據(jù)基礎(chǔ)pythonUnit7《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群訓(xùn)練

7-1:利用PyECharts展示電商交易數(shù)據(jù)案例目標(biāo)程序根據(jù)用戶(hù)輸入的電商交易數(shù)據(jù),按要求繪制出可視化圖表,用于展示、分析交易數(shù)據(jù)。案例解釋用戶(hù)輸入兩個(gè)經(jīng)過(guò)處理后的列表,列表1為商品名稱(chēng)列表,列表2為交易成功數(shù)量列表,分別繪制出柱狀圖、餅圖等。運(yùn)行效果實(shí)現(xiàn)思路基本步驟配置PyECharts做數(shù)據(jù)可視化的工程環(huán)境,我們這里使用jupyter編寫(xiě)程序

接收經(jīng)過(guò)清洗的商品交易數(shù)據(jù)

(1)定義列表變量用于保存商品名稱(chēng)數(shù)據(jù)。

(2)定義列表變量用于保存商品交易量數(shù)據(jù)。

(3)調(diào)用PyECharts庫(kù)的add方法。訓(xùn)練7-1:利用PyECharts展示電商交易數(shù)據(jù)3.輸出結(jié)果:(1)用柱狀圖展示交易數(shù)據(jù)。(2)用餅圖展示各商品交易數(shù)量所占總體交易數(shù)量的比例。運(yùn)行效果實(shí)現(xiàn)思路柱狀圖:訓(xùn)練7-1:利用PyECharts展示電商交易數(shù)據(jù)運(yùn)行效果實(shí)現(xiàn)思路餅圖:訓(xùn)練7-1:利用PyECharts展示電商交易數(shù)據(jù)《大數(shù)據(jù)基礎(chǔ)》在線(xiàn)開(kāi)放課程組《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群訓(xùn)練

7-2單元7

數(shù)據(jù)可視化利用Matplotlib展示死亡谷地區(qū)氣溫變化訓(xùn)練同步BigdataHadoop大數(shù)據(jù)基礎(chǔ)pythonUnit7《大數(shù)據(jù)基礎(chǔ)》.移動(dòng)商務(wù)營(yíng)銷(xiāo)課程群訓(xùn)練

7-2:利用Matplotlib展示死亡谷氣溫變化案例目標(biāo)文件sitka_weather_07-2014.csv是2014年七月死亡谷的氣溫?cái)?shù)據(jù),編寫(xiě)程序讀取csv文件并對(duì)其進(jìn)行數(shù)據(jù)可視化。案例解釋讀取

溫馨提示

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

評(píng)論

0/150

提交評(píng)論