大數(shù)據(jù)可視化 課件 項(xiàng)目6 Plotly實(shí)戰(zhàn)_第1頁(yè)
大數(shù)據(jù)可視化 課件 項(xiàng)目6 Plotly實(shí)戰(zhàn)_第2頁(yè)
大數(shù)據(jù)可視化 課件 項(xiàng)目6 Plotly實(shí)戰(zhàn)_第3頁(yè)
大數(shù)據(jù)可視化 課件 項(xiàng)目6 Plotly實(shí)戰(zhàn)_第4頁(yè)
大數(shù)據(jù)可視化 課件 項(xiàng)目6 Plotly實(shí)戰(zhàn)_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

項(xiàng)目六:—Plotly實(shí)戰(zhàn)(用戶行為數(shù)據(jù)可視化)目錄CONTENTS思考與練習(xí)項(xiàng)目概述學(xué)習(xí)目標(biāo)用戶畫像數(shù)據(jù)清洗用戶畫像數(shù)據(jù)可視化1項(xiàng)目概述在步入大數(shù)據(jù)時(shí)代后,為了更加精準(zhǔn)地挖掘市場(chǎng)需求,企業(yè)的關(guān)注點(diǎn)逐步聚焦在如何利用大數(shù)據(jù)技術(shù)實(shí)現(xiàn)精細(xì)化運(yùn)營(yíng)和精準(zhǔn)營(yíng)銷,這就需要建立本企業(yè)的用戶畫像。項(xiàng)目概述本項(xiàng)目結(jié)合Plotly繪圖基礎(chǔ),重點(diǎn)掌握建立企業(yè)用戶畫像的一般流程,掌握數(shù)據(jù)清洗的幾種常用方法,掌握用戶畫像數(shù)據(jù)的分析方法,靈活利用Plotly可視化工具對(duì)分析結(jié)果進(jìn)行展示。本項(xiàng)目主要掌握以下兩個(gè)方面的技術(shù):數(shù)據(jù)清洗的常用方法1Plotly數(shù)據(jù)可視化方法2項(xiàng)目概述2學(xué)習(xí)目標(biāo)

學(xué)習(xí)目標(biāo)通過(guò)本項(xiàng)目的學(xué)習(xí),能夠熟練掌握用戶畫像的相關(guān)思維方法,結(jié)合項(xiàng)目案例數(shù)據(jù)集特點(diǎn),能夠熟練應(yīng)用Pandas工具包對(duì)數(shù)據(jù)集進(jìn)行清洗操作,能夠熟練利用Plotly可視化工具實(shí)現(xiàn)對(duì)分析結(jié)果的可視化。通過(guò)項(xiàng)目案例的實(shí)戰(zhàn)操作,進(jìn)一步拓寬用戶畫像的思維視野,提升使用Plotly可視化工具的可視化的能力,為做一個(gè)合格的大數(shù)據(jù)專業(yè)技術(shù)人才奠定堅(jiān)實(shí)的基礎(chǔ)。3用戶畫像數(shù)據(jù)清洗用戶畫像是根據(jù)用戶社會(huì)屬性、生活習(xí)慣和消費(fèi)行為等信息抽象出的用戶分析模型。構(gòu)建用戶畫像的核心工作即是給用戶貼“標(biāo)簽”,用數(shù)據(jù)來(lái)描述人的行為和特征。用戶畫像維度可以分為自然屬性、社會(huì)屬性、消費(fèi)屬性等,其中自然屬性主要包括年齡、性別、屬地、職業(yè)等;社會(huì)屬性主要包括抖音(微博)粉絲數(shù)、關(guān)注數(shù)等,消費(fèi)屬性主要包括消費(fèi)偏好、下單頻率、消費(fèi)金額等。任務(wù)描述本項(xiàng)目任務(wù)主要是對(duì)使用某品牌筆記本電腦的用戶的自然屬性、社會(huì)屬性和消費(fèi)屬性的數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗和預(yù)處理,利用Pandas數(shù)據(jù)清洗工具包完成數(shù)據(jù)集的清洗。包括但不限于以下數(shù)據(jù)清洗方法:數(shù)據(jù)集加載、數(shù)據(jù)去重、缺失值判斷、對(duì)缺失值處理、數(shù)字轉(zhuǎn)換等,為后續(xù)數(shù)據(jù)統(tǒng)計(jì)分析和分析結(jié)果的可視化奠定基礎(chǔ)。通過(guò)本任務(wù)的學(xué)習(xí),掌握Pandas包中數(shù)據(jù)清洗和預(yù)處理的常用函數(shù),如數(shù)據(jù)去重函數(shù)、缺失值處理函數(shù)等,并靈活運(yùn)用Pandas工具包實(shí)現(xiàn)對(duì)數(shù)據(jù)的清洗操作。任務(wù)描述知識(shí)與技能——數(shù)據(jù)清洗應(yīng)用方法很多數(shù)據(jù)集存在數(shù)據(jù)重復(fù)、數(shù)據(jù)缺失、數(shù)據(jù)格式不統(tǒng)一(畸形數(shù)據(jù)),或錯(cuò)誤數(shù)據(jù)的情況,這就是所謂的“臟數(shù)據(jù)”,這種數(shù)據(jù)不僅影響數(shù)據(jù)的統(tǒng)計(jì)分析、也影響數(shù)據(jù)的可視化展示,還會(huì)給嚴(yán)重影響數(shù)據(jù)模型的訓(xùn)練。對(duì)“臟數(shù)據(jù)”的科學(xué)化、合理化的清洗也是大數(shù)據(jù)分析或者人工智能領(lǐng)域的重要技術(shù)環(huán)節(jié)。Pandas是Python中非常流行的數(shù)據(jù)分析庫(kù),使用它可以進(jìn)行數(shù)據(jù)科學(xué)計(jì)算和數(shù)據(jù)處理和分析,并且可以聯(lián)合其他數(shù)據(jù)科學(xué)計(jì)算工具一塊兒使用,比如,SciPy,NumPy和Matplotlib等。但在實(shí)際業(yè)務(wù)中,Pandas工具包更多的是應(yīng)用在數(shù)據(jù)清洗上,本任務(wù)主要針對(duì)Pandas在數(shù)據(jù)清洗上的應(yīng)用做簡(jiǎn)單介紹。知識(shí)與技能——數(shù)據(jù)清洗應(yīng)用方法1.DataFramehead()方法返回DataFrame或Series的前n行,其中n是用戶輸入值(默認(rèn)為5行)。head()函數(shù)用于獲取前n行,這對(duì)于快速測(cè)試對(duì)象中的數(shù)據(jù)類型是否正確非常有用。對(duì)于n的負(fù)值,head()函數(shù)返回除最后n行之外的所有行,等效于df[:-n]語(yǔ)法格式:Dataframe.head(n=5);參數(shù)說(shuō)明:n為整數(shù)值,要返回的行數(shù),python中的head()函數(shù)只是選擇數(shù)據(jù),而不對(duì)數(shù)據(jù)內(nèi)容做任何改變。知識(shí)與技能——數(shù)據(jù)清洗應(yīng)用方法2.info()函數(shù)用于獲取DataFrame

的簡(jiǎn)要摘要。在對(duì)數(shù)據(jù)進(jìn)行探索性分析時(shí),為了快速瀏覽數(shù)據(jù)集,我們使用()函數(shù)。語(yǔ)法格式:DataF(verbose=None,buf=None,max_cols=None,memory_usage=None,null_counts=None)參數(shù)說(shuō)明:Verbose:是否打印完整的摘要;Buf:可寫緩沖區(qū);max_cols:確定是打印完整摘要還是簡(jiǎn)短摘要;memory_usage:指定是否應(yīng)顯示DataFrame元素(包括索引)的總內(nèi)存使用情況;null_counts:是否顯示非空計(jì)數(shù)。如果為None,則僅顯示框架是否小于max_info_rows和max_info_columns。如果為True,則始終顯示計(jì)數(shù)。如果為False,則從不顯示計(jì)數(shù)。知識(shí)與技能——數(shù)據(jù)清洗應(yīng)用方法3.drop_duplicates()函數(shù)根據(jù)指定的字段對(duì)數(shù)據(jù)集進(jìn)行去重處理。語(yǔ)法格式:DataFrame.drop_duplicates(subset=None,keep=‘first’,inplace=False)參數(shù)說(shuō)明:Subset:根據(jù)指定的列名進(jìn)行去重,默認(rèn)整個(gè)數(shù)據(jù)集;Keep:可選{‘first’,‘last’,False},默認(rèn)first,即默認(rèn)保留第一次出現(xiàn)的重復(fù)值,并刪去其他重復(fù)的數(shù)據(jù),F(xiàn)alse是指刪去所有重復(fù)數(shù)據(jù);Inplace:是否對(duì)數(shù)據(jù)集本身進(jìn)行修改,默認(rèn)False。知識(shí)與技能——數(shù)據(jù)清洗應(yīng)用方法4.dropna()函數(shù)用來(lái)刪除含有空值的行。函數(shù)格式:dropna(axis=0,how=‘a(chǎn)ny’,thresh=None,subset=None,inplace=False)參數(shù)說(shuō)明:axis:0或’index’,表示按行刪除;1或’columns’,表示按列刪除;how:‘a(chǎn)ny’,表示該行/列只要有一個(gè)以上的空值,就刪除該行/列;‘a(chǎn)ll’,表示該行/列全部都為空值,就刪除該行/列;thresh:int型,默認(rèn)為None。如果該行/列中,非空元素?cái)?shù)量小于這個(gè)值,就刪除該行/列;subset:子集。列表,按columns所在的列(或index所在的行)刪除;inplace:是否原地替換調(diào)原來(lái)的dataframe。布爾值,默認(rèn)為False。本數(shù)據(jù)集共包含樣本21480條,樣本共有20列,其中user_id為用戶ID,每列均有字段說(shuō)明,如表所示。序號(hào)字段名稱字段說(shuō)明1user_id用戶ID2product_name產(chǎn)品名稱和規(guī)格3product_price產(chǎn)品價(jià)格4age年齡5sex性別6membership_level會(huì)員等級(jí)7marriage婚姻狀況8city城市9occupation職業(yè)10edu_level教育程度11platform_value平臺(tái)價(jià)值12loyalty忠誠(chéng)度13brand_prefer品牌偏好14prefer_third_level三級(jí)品類下單偏好15bro_prefer_third_level三級(jí)品類瀏覽偏好16purchasingpower購(gòu)買力17promotion_sensitivity促銷敏感度18comment_sensitivity評(píng)論敏感度19activity活躍度20city_level城市級(jí)別知識(shí)與技能——數(shù)據(jù)集介紹第一步:導(dǎo)入相關(guān)包第二步:讀取數(shù)據(jù)第三步:查看數(shù)據(jù)的摘要信息任務(wù)實(shí)施——查看數(shù)據(jù)摘要importnumpyasnpimportpandasaspddf=pd.read_excel('data.xlsx',index_col=0)()任務(wù)實(shí)施——查看數(shù)據(jù)摘要根據(jù)以上結(jié)果能夠看出:數(shù)據(jù)樣本總共21480條,product_name和product_price字段無(wú)缺失值,其它字段均有數(shù)據(jù)缺失。我們打開(kāi)源數(shù)據(jù)也能看到數(shù)據(jù)的缺失情況,如下圖所示。任務(wù)實(shí)施——空值處理因樣本有的特征缺失過(guò)多,并且本教材內(nèi)容重點(diǎn)關(guān)注的是數(shù)據(jù)的可視化,所以我們這里直接刪除含有缺失特征的樣本,不再涉及缺失值填充的相關(guān)知識(shí),對(duì)缺失數(shù)據(jù)填充的相關(guān)知識(shí)大家可以參考其他資料進(jìn)行學(xué)習(xí)。#刪除缺失數(shù)據(jù)df=df.dropna()#顯示數(shù)據(jù)基本信息()刪除缺失數(shù)值數(shù)據(jù)后,得到上圖所示的結(jié)果任務(wù)實(shí)施——處理重復(fù)值這里我們使用drop_duplicates()函數(shù)對(duì)數(shù)據(jù)集進(jìn)行去重處理。df.drop_duplicates()#查看數(shù)據(jù)的摘要信息()去除重復(fù)值后,樣本個(gè)數(shù)未3640,去除了三條重復(fù)值任務(wù)實(shí)施——處理重復(fù)值數(shù)據(jù)倒數(shù)第二列activity其值只有兩種類別:“一周內(nèi)非?;钴S”與“一周內(nèi)活躍”,此列中“一周內(nèi)非?;钴S”更能表達(dá)用戶的購(gòu)買傾向與購(gòu)買意愿,為了便于后續(xù)的統(tǒng)計(jì)分析與可視化呈現(xiàn),我們這里約定一個(gè)轉(zhuǎn)變規(guī)則,就是將“一周內(nèi)非?;钴S”轉(zhuǎn)變?yōu)閿?shù)字“1”,一周內(nèi)活躍”轉(zhuǎn)變?yōu)閿?shù)字“0”。#activity類別數(shù)字化df["activity"].replace("一周內(nèi)非?;钴S",1,inplace=True)df["activity"].replace("一周內(nèi)活躍",0,inplace=True)#輸出activity替換結(jié)果和統(tǒng)計(jì)值replace_counts=df['activity'].value_counts()通過(guò)對(duì)Pandas工具包的學(xué)習(xí),掌握了常用的數(shù)據(jù)清洗函數(shù)的使用,如數(shù)據(jù)的去重、數(shù)據(jù)的缺失值處理等方法,為后續(xù)的數(shù)據(jù)分析與可視化任務(wù)奠定了基礎(chǔ)。數(shù)據(jù)清洗作為數(shù)據(jù)可視化的前端技術(shù),在企業(yè)中有著重要的應(yīng)用,因本任務(wù)所涉及的數(shù)據(jù)處理方法有限,有興趣的小伙伴多查閱相關(guān)資料來(lái)進(jìn)一步提升數(shù)據(jù)清洗的相關(guān)知識(shí)和技能。任務(wù)總結(jié)4用戶畫像數(shù)據(jù)可視化任務(wù)描述本項(xiàng)目任務(wù)針對(duì)數(shù)據(jù)集的特征,區(qū)分出用戶的自然屬性、社會(huì)屬性以及消費(fèi)屬性,探索用戶特征與三級(jí)品類瀏覽偏好、三級(jí)品類下單偏好、以及活躍度之間的關(guān)系。從用戶年齡分布、會(huì)員等級(jí)、性別、教育程度等屬性探索用戶的偏好,并對(duì)分析結(jié)果可視化,為企業(yè)挖掘市場(chǎng)需求,實(shí)現(xiàn)精準(zhǔn)營(yíng)銷提供技術(shù)支持。本任務(wù)首先需要將用戶數(shù)據(jù)特征中的年齡、性別、職業(yè)、教育程度劃分為自然屬性,把城市、城市級(jí)別、忠誠(chéng)度、購(gòu)買力、促銷敏感度、評(píng)論敏感度劃分為社會(huì)屬性,三級(jí)品類瀏覽偏好、三級(jí)品類下單偏好、活躍度、品牌偏好劃分為消費(fèi)屬性。然后探索自然屬性對(duì)消費(fèi)屬性的影響,探索社會(huì)屬性對(duì)消費(fèi)屬性的影響,因篇幅關(guān)系,我們這里選取部分的自然屬性和社會(huì)屬性做探索,其他未涉及到的屬性,有興趣的小伙伴可以自行研究。通過(guò)本任務(wù)的學(xué)習(xí),掌握用戶畫像的一般方法和步驟,靈活結(jié)合數(shù)據(jù)分析思想和Plotly數(shù)據(jù)可視化工具實(shí)現(xiàn)對(duì)分析結(jié)果的可視化呈現(xiàn),鞏固理論知識(shí)、提升大數(shù)據(jù)分析與可視化技能水平,為做一個(gè)合格的大數(shù)據(jù)領(lǐng)域的人才打下基礎(chǔ)。用戶畫像是指通過(guò)收集用戶的自然屬性、社會(huì)屬性、消費(fèi)習(xí)慣、興趣偏好等各個(gè)維度的數(shù)據(jù),進(jìn)一步統(tǒng)計(jì)并挖掘潛在的價(jià)值信息,進(jìn)而對(duì)用戶的信息全貌進(jìn)行刻畫的過(guò)程。用戶畫像的核心是將用戶的具體信息抽象為標(biāo)簽,利用這些標(biāo)簽將用戶形象具體化,每一個(gè)標(biāo)簽都描述了一個(gè)維度,各個(gè)維度相互聯(lián)系,共同構(gòu)成對(duì)用戶的一個(gè)整體描述。知識(shí)與技能——用戶畫像介紹在上面的描述中,標(biāo)簽是個(gè)抽象的詞匯,標(biāo)簽有不同的分類,常見(jiàn)的有統(tǒng)計(jì)類標(biāo)簽、規(guī)則類標(biāo)簽等。下面我們對(duì)統(tǒng)計(jì)類標(biāo)簽和規(guī)則類標(biāo)簽做簡(jiǎn)單介紹。知識(shí)與技能——用戶畫像介紹0102如姓名、性別、年齡、地市、活躍時(shí)長(zhǎng)等。這類標(biāo)簽一般描述用戶的基本屬性,也稱為自然屬性。統(tǒng)計(jì)類標(biāo)簽像金牌會(huì)員、銀牌會(huì)員和銅牌會(huì)員等,這類標(biāo)簽一般時(shí)按照某種約定的規(guī)則制定,如“每周消費(fèi)大于1000元”稱為金牌會(huì)員。規(guī)則類標(biāo)簽知識(shí)與技能——構(gòu)建用戶畫像步驟本任務(wù)項(xiàng)目案例已經(jīng)準(zhǔn)備好了數(shù)據(jù)集,下一步就是探索用戶屬性對(duì)用戶行為的關(guān)系,這里,我們分為以下二個(gè)步驟實(shí)現(xiàn)用戶畫像。序號(hào)字段名稱字段說(shuō)明1user_id用戶ID2age年齡3sex性別4city城市5occupation職業(yè)6edu_level教育程度7city_level城市級(jí)別8marriage婚姻狀況9product_name產(chǎn)品名稱和規(guī)格10product_price產(chǎn)品價(jià)格1.確定用戶的屬性分類我們把用戶數(shù)據(jù)集中的屬性分為自然屬性、社會(huì)屬性和消費(fèi)屬性,分別對(duì)應(yīng)下面的表6-2、表6-3和表6-4。表6-2知識(shí)與技能——構(gòu)建用戶畫像步驟序號(hào)字段名稱字段說(shuō)明1membership_level會(huì)員等級(jí)2platform_value平臺(tái)價(jià)值3loyalty忠誠(chéng)度4purchasingpower購(gòu)買力5promotion_sensitivity促銷敏感度6comment_sensitivity評(píng)論敏感度序號(hào)字段名稱字段說(shuō)明1prefer_third_level三級(jí)品類下單偏好2bro_prefer_third_level三級(jí)品類瀏覽偏好3activity活躍度4brand_prefer品牌偏好表6-3表6-4知識(shí)與技能——構(gòu)建用戶畫像步驟2.

數(shù)據(jù)分析與可視化本項(xiàng)目案例,我們探索部分屬性與消費(fèi)屬性的關(guān)系,主要從以下幾個(gè)方面進(jìn)行分析與可視化呈現(xiàn):01用戶數(shù)據(jù)的年齡分布02不同會(huì)員等級(jí)一周內(nèi)非常活躍的用戶分布03不同性別不同會(huì)員等級(jí)一周內(nèi)非?;钴S的用戶數(shù)04不同購(gòu)買力下,一周內(nèi)非?;钴S用戶分布占比05不同忠誠(chéng)度下,一周內(nèi)非?;钴S用戶占比06不同年齡段一周內(nèi)非?;钴S的用戶占比07不同會(huì)員等級(jí)對(duì)三級(jí)品類下單偏好分布任務(wù)實(shí)施——用戶年齡分布針對(duì)所有用戶,觀察用戶的年齡分布情況,這里我們選擇通過(guò)繪制柱狀圖來(lái)展示,代碼如下:importnumpyasnpimportpandasaspd%matplotlibinlineimportplotlyimportplotly.graph_objsasgo#fromplotly.offlineimportinit_notebook_mode,iplot#init_notebook_mode(connected=True)#importplotly.ioaspio#當(dāng)瀏覽器不支持渲染當(dāng)前圖時(shí),可以用下列代碼選擇支持瀏覽器版本importplotly.ioaspiopio.renderers.default='browser'df=pd.read_excel('data.xlsx',index_col=0)df=df.dropna()df=df.drop_duplicates()df["activity"].replace("一周內(nèi)非常活躍",1,inplace=True)df["activity"].replace("一周內(nèi)活躍",0,inplace=True)trace=[go.Histogram(x=df.age)]第一步:導(dǎo)包加載數(shù)據(jù)數(shù)據(jù)預(yù)處理引入直方圖函數(shù)任務(wù)實(shí)施——用戶年齡分布第二步:設(shè)置布局并顯示圖形layout=go.Layout(font={'size':22})fig=go.Figure(data=trace,layout=layout)fig.update_layout(font_size=22,legend=dict(

orientation="h",

yanchor="bottom",

y=-0.4,

xanchor="center",

x=0.5,

title_text=''))fig.update_xaxes(

side='bottom',

title={'text':''})fig.update_yaxes(

side='left',

title={'text':''})fig.update_layout(

title={

'text':"用戶年齡分布",

'y':0.9,

'x':0.5

})#iplot(fig)fig.show()輸出效果圖如下所示:任務(wù)實(shí)施——不同會(huì)員等級(jí)的用戶分布查看不同會(huì)員等級(jí)下一周內(nèi)非?;钴S用戶分布,我們使用圖柱狀來(lái)進(jìn)行可視化展示,示例代碼如下:importnumpyasnpimportpandasaspd#%matplotlibinlineimportplotlyimportplotly.graph_objsasgoimportplotly.ioaspiopio.renderers.default='browser'df=pd.read_excel('data.xlsx',index_col=0)df=df.dropna()df=df.drop_duplicates()df["activity"].replace("一周內(nèi)非?;钴S",1,inplace=True)df["activity"].replace("一周內(nèi)活躍",0,inplace=True)data

=df.groupby(by='membership_level')['activity'].sum()x=data.indexy=data.values第一步:導(dǎo)包數(shù)據(jù)預(yù)處理任務(wù)實(shí)施——不同會(huì)員等級(jí)的用戶分布trace=[go.Bar(x=list(x),y=y)]layout=go.Layout(font={'size':22})fig=go.Figure(data=trace,layout=layout)fig.update_layout(font_size=22,legend=dict(

orientation="h",

yanchor="bottom",

y=-0.4,

xanchor="center",

x=0.5,

title_text=''))fig.update_layout(

title={

'text':"不同會(huì)員等級(jí)下一周內(nèi)非?;钴S用戶分布圖",

'y':0.9,

'x':0.5})fig.show()第二步:設(shè)置布局并顯示圖形輸出效果圖如下所示:任務(wù)實(shí)施——不同性別和不同會(huì)員等級(jí)的用戶分布我們使用并列柱狀圖來(lái)展示不同性別和不同會(huì)員等級(jí)的用戶分布,示例代碼如下:importnumpyasnpimportpandasaspd#%matplotlibinlineimportplotlyimportplotly.graph_objsasgoimportplotly.ioaspiopio.renderers.default='browser'df=pd.read_excel('data.xlsx',index_col=0)df=df.dropna()df=df.drop_duplicates()df["activity"].replace("一周內(nèi)非?;钴S",1,inplace=True)df["activity"].replace("一周內(nèi)活躍",0,inplace=True)data_female

=df[df["sex"]=="女"].groupby(by='membership_level')['activity'].sum()data_male

=df[df["sex"]=="男"].groupby(by='membership_level')['activity'].sum()第一步:導(dǎo)包數(shù)據(jù)預(yù)處理統(tǒng)計(jì)計(jì)算任務(wù)實(shí)施——不同性別和不同會(huì)員等級(jí)的用戶分布第二步:設(shè)置布局并顯示圖形trace0=go.Bar(

x=list(data_female.index),

y=data_female.values,

name='男')trace1=go.Bar(

x=list(data_male.index),

y=data_male.values,

name='女')trace=[trace0,trace1]layout=go.Layout(font={'size':22})fig=go.Figure(data=trace,layout=layout)fig.update_layout(font_size=22,legend=dict(

orientation="h",

yanchor="bottom",

y=-0.4,

xanchor="center",

x=0.5,

title_text=''))fig.update_layout(

title={

'text':"不同性別不同會(huì)員等級(jí)下一周內(nèi)非常活躍用戶分布圖",

'y':0.9,

'x':0.5})fig.show()任務(wù)實(shí)施——不同性別和不同會(huì)員等級(jí)的用戶分布輸出效果圖如下所示:任務(wù)實(shí)施——不同購(gòu)買力活躍的用戶分布我們使用餅圖來(lái)展示不同購(gòu)買力一周之內(nèi)非?;钴S的用戶分布情況,示例代碼如下importnumpyasnpimportpandasaspd#%matplotlibinlineimportplotlyimportplotly.graph_objsasgoimportplotly.ioaspiopio.renderers.default='browser'df=pd.read_excel('data.xlsx',index_col=0)df=df.dropna()df=df.drop_duplicates()df["activity"].replace("一周內(nèi)非常活躍",1,inplace=True)df["activity"].replace("一周內(nèi)活躍",0,inplace=True)

data_pie=df.groupby(by='purchasingpower')['activity'].sum()pie=go.Pie(labels=list(data_pie.index),

values=data_pie.values,textfont=dict(size=22))

第一步:導(dǎo)包處理數(shù)據(jù)任務(wù)實(shí)施——不同購(gòu)買力活躍的用戶分布第二步:設(shè)置布局并顯示圖形trace=[pie]layout=go.Layout(

font={'size':22})fig=go.Figure(data=trace,layout=layout)fig.update_layout(font_size=22,legend=dict(

orientation="h",

yanchor="bottom",

y=-0.1,

xanchor="center",

x=0.5,

title_text=''))fig.update_layout(

title={

'text':"不同購(gòu)買力一周內(nèi)非常活躍的用戶分布",

'y':0.9,

'x':0.5})#iplot(fig)fig.show()任務(wù)實(shí)施——不同購(gòu)買力活躍的用戶分布輸出效果如下圖所示:任務(wù)實(shí)施——不同年齡段活躍的用戶分布第一步:導(dǎo)包處理數(shù)據(jù)我們使用餅圖來(lái)展示不同年齡段一周之內(nèi)非?;钴S的用戶分布情況,示例代碼如下importnumpyasnpimportpandasaspd#importmatplotlib.pyplotasplt#%matplotlibinlineimportplotlyimportplotly.graph_objsasgoimportplotly.ioaspiopio.renderers.default='browser'df=pd.read_excel('data.xlsx',index_col=0)df=df.dropna()df=df.drop_duplicates()df["activity"].replace("一周內(nèi)非常活躍",1,inplace=True)df["activity"].replace("一周內(nèi)活躍",0,inplace=True)data_pie=df.groupby(by='age')['activity'].sum()pie=go.Pie(labels=list(data_pie.index),

values=data_pie.values,textfont=dict(size=22),pull=[0.3,0.1,0,0])

任務(wù)實(shí)施——不同年齡段活躍的用戶分布第二步:設(shè)置布局并顯示圖形trace=[pie]layout=go.Layout(font={'size':22})fig=go.Figure(data=trace,layout=layout)fig.update_layout(font_size=22,legend=dict(

orientation="h",

yanchor="bottom",

y=-0.1,

xanchor="center",

x=0.5,

title_text=''))fig.update_layout(

title={

'text':"不同年齡段一周內(nèi)非常活躍的用戶分布",

'y':0.9,

'x':0.5})#iplot(fig)fig.show()任務(wù)實(shí)施——不同年齡段活躍的用戶分布輸出效果圖如下所示:任務(wù)實(shí)施——不同會(huì)員等級(jí)三級(jí)品類下單偏好我們使用箱線圖來(lái)展示不同不同會(huì)員等級(jí)對(duì)三級(jí)品類下單偏好分布,示例代碼如下importnumpyasnpimportpandasaspd#importmatplotlib.pyplotasplt#%matplotlibinlineimportplotlyimportplotly.graph_objsasgoimportplotly.ioaspiopio.renderers.default='browser'df=pd.read_excel('data.xlsx',index_col=0)df=df.dropna()df=df.drop_duplicates()df["activity"].replace("一周內(nèi)非常活躍",1,inplace=True)df["activity"].replace("一周內(nèi)活躍",0,inplace=True)第一步:導(dǎo)包數(shù)據(jù)預(yù)處理任務(wù)實(shí)施——不同會(huì)員等級(jí)三級(jí)品類下單偏好第二步:創(chuàng)建trace#builddatabox1=go.Box(

y=df[df['membership_level']=='金牌會(huì)員']['prefer_third_level'].dropna(),

name='金牌會(huì)員')box2=go.Box(

y=df[df['membership_level']=='鉆石會(huì)員']['prefer_third_level'].dropna(),

name='鉆石會(huì)員')box3=go.Box(

y=df[df['membership_level']=='銅牌會(huì)員']['prefer_third_level'].dropna(),

name='銅牌會(huì)員')box4=go.Box(

y=df

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論