Python數(shù)據(jù)分析與可視化教案4.4 數(shù)據(jù)的交叉與透視_第1頁
Python數(shù)據(jù)分析與可視化教案4.4 數(shù)據(jù)的交叉與透視_第2頁
Python數(shù)據(jù)分析與可視化教案4.4 數(shù)據(jù)的交叉與透視_第3頁
Python數(shù)據(jù)分析與可視化教案4.4 數(shù)據(jù)的交叉與透視_第4頁
Python數(shù)據(jù)分析與可視化教案4.4 數(shù)據(jù)的交叉與透視_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課 題4.4數(shù)據(jù)的交叉與透視課 型講練授課班級(jí)大數(shù)據(jù)授課時(shí)數(shù)2教學(xué)目標(biāo).理解頻數(shù)交叉表與數(shù)據(jù)透視表的區(qū)別。.能夠繪制頻數(shù)交叉表。.能夠繪制數(shù)據(jù)透視表。教學(xué)重點(diǎn).能夠繪制頻數(shù)交叉表。.能夠繪制數(shù)據(jù)透視表。教學(xué)難點(diǎn)1.理解頻數(shù)交叉表與數(shù)據(jù)透視表的區(qū)別。學(xué)情分析數(shù)據(jù)的交叉透視分析是數(shù)據(jù)分析的一種常用的方法,這種方法類似于 Excel的數(shù)據(jù)透視表,其中區(qū)別在于pandas的交叉透視分析既有交叉的頻數(shù) 統(tǒng)計(jì)還有函數(shù)統(tǒng)計(jì)。數(shù)據(jù)交叉透視分析是數(shù)據(jù)分析中常用方法之一,通過交叉透視分析可以用來判斷 不同字段之間是否存在相互關(guān)聯(lián)。一、頻數(shù)交叉表頻數(shù)交叉表是一種用于計(jì)算分組頻率的表格,頻數(shù)交叉表只統(tǒng)計(jì)行與列字段交叉

2、 出現(xiàn)的頻數(shù),因?yàn)楸砀窠y(tǒng)計(jì)的內(nèi)容是有限的,所以行字段和列字段的取值不能過多, 一般都是字符型分類字段。比方判斷分析性別與商品類別之間是否存在關(guān)聯(lián),就可以 把性別與商品類別可以分別作為行字段和列字段,進(jìn)而統(tǒng)計(jì)交叉字段出現(xiàn)的頻數(shù),并 判斷不同性別選擇不同商品時(shí)是否存在明顯差異。比方一共有20個(gè)客戶,其中男性和女性客戶各占10個(gè),而使用A手機(jī)和B手 機(jī)各占10個(gè)客戶,如果僅僅分析性別或商品類別的話,看不出明顯的規(guī)律。但是如 果將兩個(gè)字段進(jìn)行交叉分析的話,就可以進(jìn)一步統(tǒng)計(jì)不同性別選擇不同商品類別的頻 數(shù),將各個(gè)頻數(shù)繪制在表格中,如表4-*所示。表4-*不同性別選擇不同商品結(jié)果AB小計(jì)男2810女821

3、0小計(jì)101020從表4-*可以看出,購買A手機(jī)的客戶中,女性客戶明顯多于男性客戶,而B手 機(jī)的客戶中,男性客戶明顯多于女性客戶,而這些規(guī)律是無法僅通過一個(gè)字段看出的, 只有通過字段的交叉統(tǒng)計(jì)才能看出。如果要把數(shù)值型字段作為交叉表的行字段或列字段,可以先將數(shù)值型字段通過分 段函數(shù)轉(zhuǎn)化成分類型字段,進(jìn)而再進(jìn)行統(tǒng)計(jì)分析,比方直接繪制年齡和商品類別的交 叉表意義不大,因?yàn)槟挲g的取值過多。此時(shí),可以對(duì)年齡進(jìn)行分段,再制作年齡段和 商品類別的交叉表。頻數(shù)交叉表一般格式如表4-*所示。表4-*頻數(shù)交叉表結(jié)果行字段行字段二行字段二列字段列字段二和頻數(shù)和頻數(shù)列字段二和頻數(shù)和頻數(shù)pandas提供了 crosst

4、ab函數(shù)用來制作頻數(shù)交叉表,crosstab函數(shù)的一般用法為:pd.crosstab(index,columns,margins)其中,index表示交叉表行字段。columns表示交叉表列字段。margins表示匯總 (Total)功能的開關(guān),設(shè)為True后結(jié)果會(huì)出現(xiàn)名為“ALL”的行和列,默認(rèn)為False。例如代碼如下:import pandas as pdpd.set_option(display.unicode.east_asian_width,True)diet =性別1,1,1,0,0,0,0,商品類別:0,0,0,0,0,1,1data = pd.DataFrame(dict)d

5、ata性別1=data性別replace(0:男,1:女) #將性別中的0替換為男,將1替 換為女data商品類別=data商品類別.replace(0:,商品A:,商品B1) #將商品類別 中的。替換為商品A,將1替換為商品Bprint(初始數(shù)據(jù)為:n;data)result_crosstab_l = pd.crosstab(index=data 性另,columns=data商品類另 U)print(頻數(shù)交叉表的結(jié)果為果”,result_crosstab_l)result_crosstab_2 = pd.crosstab(index=data性另,columns=data商品類另,marg

6、ins=True)print(添加匯總行與匯總列后頻數(shù)交叉表的結(jié)果為:n”,result_crosstab_2)輸出結(jié)果如圖4-*所示。Run:4-4C:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/4-4.py 初始數(shù)據(jù)為:性別商品類別0男商品A三1女商品A.2女商品A3女商品A4女商品A女商品B男商品B男商品B男商品B男商品B頻數(shù)交叉表的結(jié)果為:商品類別商品A商品B性別 TOC o 1-5 h z 女41男14添加匯總行與匯總列后頻數(shù)交叉表的結(jié)果為:商品類別商品A商品B All性別女415男145

7、All5510Process finished with exit code 0圖4-*頻數(shù)交叉表例如結(jié)果二、數(shù)據(jù)透視表頻數(shù)交叉表只能統(tǒng)計(jì)行與列字段交叉出現(xiàn)的頻數(shù),而如果還要再統(tǒng)計(jì)行與列字段 以外的第3個(gè)字段,就需要用到數(shù)據(jù)透視表。pandas中的數(shù)據(jù)透視表類似于Excel中 的數(shù)據(jù)透視表,需要找到行字段、列字段以及統(tǒng)計(jì)字段,再確定統(tǒng)計(jì)方法就可以繪制 數(shù)據(jù)透視表。比方年份與地區(qū)可以分別作為行字段和列字段,進(jìn)而再統(tǒng)計(jì)銷售金額的 各種指標(biāo),就可以制作數(shù)據(jù)透視表。數(shù)據(jù)透視表結(jié)果如表4-*所示。表4-*函數(shù)交叉表結(jié)果pandas提供了制作數(shù)據(jù)透視表的函數(shù)pivot table, pivot table

8、函數(shù)的一般用法為:行字段行字段二行字段二列字段列字段二和和統(tǒng)計(jì)字段的統(tǒng)計(jì)指標(biāo)統(tǒng)計(jì)字段的統(tǒng)計(jì)指標(biāo)列字段二和統(tǒng)計(jì)字段的統(tǒng)計(jì)指標(biāo)和統(tǒng)計(jì)字段的統(tǒng)計(jì)指標(biāo)pd.pivot_table(data,index,columns,values,aggfunc,margins)各個(gè)參數(shù)的作用如下:data表示待分析的DataFrame。index表示數(shù)據(jù)透視表的行字段。columns表示數(shù)據(jù)透視表的列字段。values表示數(shù)據(jù)透視表的統(tǒng)計(jì)字段。aggfunc表示統(tǒng)計(jì)指標(biāo)。如np.sum表示計(jì)算總和,叩.mean表示計(jì)算平均數(shù),使 用前需要導(dǎo)入numpyomargins表示匯總(Total)功能的開關(guān),設(shè)為True后

9、結(jié)果集中會(huì)出現(xiàn)名為“ALL” 的行和列。默認(rèn)為False。例如代碼如下:import numpy as npdata銷售金額=np.arange(ll,l,-l)print(初始數(shù)據(jù)為:n ”,data)result_pivot_l = pd.pivot_table(data二data,index=性另 i,columns=,商品類另小,values=銷 售金額:aggfunc = np.sum)print(數(shù)據(jù)透視表1的結(jié)果為:nresult_pivot_l)result_pivot_2 = pd.pivot_table(data=data,index=性別;columns=商品類別,val

10、ues=1 銷 售 金 額aggfunc=np.mean,margins=True)print(數(shù)據(jù)透視表 2 的結(jié)果為:n”,result_pivot_2)輸出結(jié)果如圖4-*所示。Run:4-4AC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/4-4.py初始數(shù)據(jù)為:性別商品類別銷售金額=50男商品A11丑1女商品A102女商品A93女商品A84女商品A75女商品B66男商品B57男商品B48男商品B39男商品B2數(shù)據(jù)透視表1的結(jié)果為:商品類別商品A商品B 性別 女346男1114數(shù)據(jù)透視表2的結(jié)

11、果為:商品類別商品A商品B All 性別女8.56.08男1103.55All9.04.06Process finished with exit code 0圖4-*數(shù)據(jù)透視表例如結(jié)果【結(jié)果分析】從結(jié)果可以看出,購買商品A的男性客戶的平均銷售金額明顯大于女性客戶,而購買商品B的女性客戶平均銷售金額明顯大于男性客戶。任務(wù)實(shí)訓(xùn)任務(wù) 1:利用 read excel 導(dǎo)入 supermarket.xlsx (supermarket.xlsx 存放在 c:data 路 徑中)中的“銷售統(tǒng)計(jì)”工作表(第1張工作表),導(dǎo)入時(shí)將“客戶ID”列設(shè)為索引, 完成:(1)從“訂單ID”列中提取年份,并將結(jié)果存放到新

12、列“年”中。(2)制作數(shù)據(jù)交叉表,統(tǒng)計(jì)不同年份的不同省份的頻數(shù),并統(tǒng)計(jì)匯總結(jié)果。(3)從“產(chǎn)品ID”中提取產(chǎn)品類別,如從“辦公用-用品-10002717”提取出“用 品”,并將結(jié)果存放到新列“產(chǎn)品類別”中。將“銷售金額”進(jìn)行分段,銷售金額75% 分位數(shù)以上的數(shù)據(jù)命名為“優(yōu)質(zhì)客戶”,銷售金額75%分位數(shù)以下的數(shù)據(jù)命名為“一 般客戶”。(4)制作數(shù)據(jù)交叉表,統(tǒng)計(jì)不同年份的不同客戶的頻數(shù),并統(tǒng)計(jì)匯總結(jié)果。任務(wù)1 (1)具體代碼如下:pd.set_option(,display.max_columns,None)pd.seLoptionCdisplay. width,None)pd.set_optio

13、n(,True)datal = pd.read_excel(,c:datasupermarket.xlsx,index_col=/1 ID)print(導(dǎo)入的數(shù)據(jù)為:n”,data 1 .head()datal年=datal J訂單 ID.str.split(,-expand=True) 1 print(生成新列年的結(jié)果為:n”,datal. head。)輸出結(jié)果如圖4-*所示。Run:0 4-4圖4-*任務(wù)1 (1)輸出結(jié)果 個(gè)C:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/4-4.py導(dǎo)入的數(shù)據(jù)

14、為:訂單ID產(chǎn)品ID產(chǎn)品名稱客戶姓名 省城市單價(jià)數(shù)量的售金額折扣折扣金額*方客戶ID14485US-2018-1357144 辦公用-用品-10002717Fiskars 剪刀,藍(lán)色曾惠 浙江 杭州 6521300.478.010165CN-2018-1973789 辦公用-信封-10004832 GlobeWeis 搭扣信封,紅色許安四川內(nèi)江 6321260.0126.010165CN-2018-1973789辦公用-裝訂-10001505 Cardinal孔加固材料,回收許安 四川 內(nèi)江 162320.419.217170 US-2018-3017568 辦公用-用品-10003746Kl

15、eencut 開信刀,工業(yè)宋良 江蘇 住江 8043200.4192.015730CN-2017-2975416 辦公用-器具-10003452 KitchenAid 攪拌機(jī),黑色萬蘭廣東汕頭 459313770.01377.0生成新列年的結(jié)果為:訂單ID產(chǎn)品ID產(chǎn)品名稱客戶姓名 省城市單價(jià)數(shù)M銷售金潁折扣折扣金傾 年客戶ID14485US-2018-1357144 辦公用 用品-10002717Fiskars 剪刀,藍(lán)色曾弟 浙江 杭州 65213。0.478.0 201810165 CN-2018-1973789 辦公用-信封-10004832GlobeWeis 搭扣信封,紅色許安 四川

16、內(nèi)江 6321260.0126.0 201810165CN-2018-1973789 辦公用-裝訂-10001505 Cardinal 孔加固材料,回收許安 四川 內(nèi)江 162320.419.2 201817170US-2018-3017568 辦公用-用品-10003746Kleencut 開信刀,工業(yè)宋良 江蘇 鎮(zhèn)江 8043200.4192.0 20181573。CN-2017-2975416 辦公用器具-10003452 KitchenAid 攪拌機(jī),黑色萬蘭廣東汕頭 459313770.01377.0 2017Process finished with exit code 0任務(wù)1

17、(2)具體代碼如下:crosstab_resultl = pd.crosstab(index = datal 1 省 columns = datal, 年 margins二True)print(crosstab_result 1)輸出結(jié)果如圖3-*所示。Run:4-4A年2015201620172018All省上海2411118云南047011I內(nèi)蒙古1404220Ei北京02136吉林221813w四川416617天津01359安徽109111山東2817633山西00224廣東1417830廣西02046江蘇114141342江西655420河北4271326河南0018018浙江4116

18、829海南00303湖北209213湖南215513甘肅631111福建821011貴州20136江寧49162251重慶024713陜西821516青海00011黑龍江813161249All9479175152500圖4-*任務(wù)1(2)輸出結(jié)果【結(jié)果分析】從結(jié)果中可以看出,江蘇、遼寧、重慶、黑龍江等省份近三年的訂 單有明顯地上升。廣東、甘肅、福建等省份地訂單有下降地趨勢(shì)。任務(wù)1 (3)具體代碼如下:datal產(chǎn)品類另= datal產(chǎn)品 ID*.str.split(,-expand=True) 1 des = data 1銷售金額describe。datal客戶等級(jí)1=pd.cut(data

19、l 銷售金額1bins=0,des,75%,des,max,labels=, 一 般客戶:優(yōu)質(zhì) 客戶)print(生成新列產(chǎn)品類別和客戶等級(jí),的結(jié)果為:rT, datal.head。)輸出結(jié)果如圖4-*所示。WE新司,產(chǎn)品類別和,客戶等級(jí),的結(jié)果為:訂華ID產(chǎn)品ID產(chǎn)品名稱客戶姓名省城市單價(jià)數(shù)量銷售金額客戶I。514485US-2018-1357144辦公用-用品-10002717Fiskars 剪刀,色S浙江杭州65213010165CN-2018-1973789辦公用-信封-10004832GlobeWeis搭扣信封,紅色許安四川內(nèi)江63212610165CN-2018-1973789辦公

20、用裝VI-10001505Cardinal孔加固材料,回收許安四川內(nèi)江16232w17170US-2018-3017568辦公用-用品-10003746Kleencut開信刀,工業(yè)宋R江蘇慎江80432015730CN-2017-2975416辦公用-器具-100。3452KitchenAid攪拌機(jī),黑色萬蘭廣東汕頭45931377Processfinished with exit code 0Run:4-4折扣折扣金微年產(chǎn)品矣另客戶等級(jí)0.478.02018用一般客戶0.0126.02018優(yōu)一般客戶0.419.22018裝iT一般客戶0.4192.02018用;敘客戶0.01377.020

21、17器1一鍛客戶圖4-*任務(wù)1 (3)輸出結(jié)果任務(wù)1 (4)具體代碼如下:crosstab_result2 = pd.crosstab(index = data 1產(chǎn)品類另叫,columns = datal 客戶等級(jí)margins=True)print(crosstab_result2)輸出結(jié)果如圖4-*所示。Run:4-4F5C:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/4-4.py 客戶等級(jí)一般客戶優(yōu)質(zhì)客戶All產(chǎn)品類別書架111324信封30030器具92231復(fù)印61824收納31839標(biāo)

22、簽28028桌子178椅子181836用具22224用品35035 182139系固33033紙張26026美術(shù)20020裝訂49049設(shè)備101020配件28634All3 乃125 500Processfinished with exit code 0圖4-*任務(wù)1 (4)輸出結(jié)果【結(jié)果分析】從結(jié)果中可以看出,雖然優(yōu)質(zhì)客戶的人數(shù)較少,但是“器具”、“復(fù) 印“、“椅子”、“ ”、“設(shè)備”等產(chǎn)品有至少一半訂單來自于優(yōu)質(zhì)客戶。任務(wù)2:將任務(wù)1的結(jié)果重新命名為data2,制作數(shù)據(jù)透視表,統(tǒng)計(jì)分析不同年份 的不同產(chǎn)品類別對(duì)應(yīng)的平均銷售金額。具體代碼如下:data2 = data1result_piv

23、ot = pd.pivot_table(data=data2,index=產(chǎn)品類別,columns=年,values=銷售金額aggfunc=np.mean)print(round(result_pivot,0)輸出結(jié)果如圖4-*所示。Run:4-4 tC:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/4-4.py年2015201620172018產(chǎn)品類別5s =5書架2450.0 2746.0 2091.0 2888.0丑信封660.0459.0358.0588.0w器具8373.0 7280.0

24、5321.0 4266.0復(fù)印4034.0 2962.0 2483.0 2792.0收納1467.01995.01350.01364.0標(biāo)簽141.0217.0209.0193.0桌子13601.0NaN4021.05670.0椅子5294.05449.02781.02575.0用具603.0354.0789.01028.0用品325.0400.0468.0341.0 3308.04418.02806.05298.0系固21440216,0178*0235,0紙張432.0292.0419.0707.0美術(shù)371.0369.0252.0389.0裝訂2030444.0276.0419.0設(shè)備4

25、88.05718.02374.02522.0配件1390.01187.01019.01198.0Process finished with exit code 0圖4-*任務(wù)2輸出結(jié)果鞏固訓(xùn)練利用 read_excel 導(dǎo)入 c:datascore.xls,完成:(1)將“area”列拆分成兩個(gè)新列,將其中的省份生成新列“province,將其中 的城市生成新列“city”。(2)制作頻數(shù)交叉表,統(tǒng)計(jì)不同省份不同性別的頻數(shù)。(3)制作數(shù)據(jù)透視表,統(tǒng)計(jì)不同城市不同性別對(duì)應(yīng)的數(shù)學(xué)的平均分。Run 4-3訂單ID產(chǎn)品ID產(chǎn)品名稱客戶姓名省城市單價(jià)數(shù)量侑售金額折扣折扣金額客戶1014485US-201

26、8-1357144辦公用-用品-10002717Fiskars剪刀,監(jiān)色四惠浙江杭州6521300.478.010165CN-2018-1973789辦公用-信封-10004832GlobeWeis搭扣信封,紅色許安四川內(nèi)江6321260.0126.010165CN-2018-1973789辦公用-裝訂-10001505Cardinal孔加固材料,回收許安四川內(nèi)江162320.419.217170US-2018-3017568辦公用-用品-10003746Kleencut開信刀,工業(yè)宋良江蘇鎮(zhèn)江8043200.4192.015730CN-2017-2975416辦公用器具10003452Kit

27、chenAid授拌機(jī),黑色萬蘭廣東汕頭459313770.01377.0平均俏區(qū)金額最少的3個(gè)營的結(jié)果為:訂單ID產(chǎn)品ID產(chǎn)品名稱客戶姓名省城市單價(jià)數(shù)量侑售金額折扣折扣金額客戶1014485US-2018-1357144辦公用-用品-10002717Fiskars剪刀,監(jiān)色四惠浙江杭州6521300.478.010165CN-2018-1973789辦公用-信封-10004832GlobeWeis搭扣信封,紅色許安四川內(nèi)江6321260.0126.010165CN-2018-1973789辦公用-裝訂-10001505Cardinal孔加固材料,回收許安四川內(nèi)江162320.419.21717

28、0US-2018-3017568辦公用-用品-10003746Kleencut開信刀,工業(yè)宋良江蘇鎮(zhèn)江8043200.4192.015730CN-2017-2975416辦公用器具10003452KitchenAid授拌機(jī),黑色萬蘭廣東汕頭459313770.01377.0平均俏區(qū)金額最少的3個(gè)營的結(jié)果為:C:UsersliliangAnaconda3python.exe C:/Users/liliang/PycharmProjects/sjfx/4-3.py 導(dǎo)入的數(shù)據(jù)為:省 TOC o 1-5 h z 遼寧271.2甘肅291.0西海300.0Name:偽包金額,dtype: float6

29、4折扣金陵總和排名前5的客戶名單的結(jié)果為:客戶姓名俞明21017.0EVm15694.0芬聒14143.0白鵠9831.0趙蜂7945.0Name:折扣金額,dtype: float64Process finished with exit code 0圖4-*任務(wù)1輸出結(jié)果【結(jié)果分析】因?yàn)槊總€(gè)客戶都有很多訂單,所以要統(tǒng)計(jì)折扣金額排名前10的客 戶名單,首先需要對(duì)數(shù)據(jù)按照客戶進(jìn)行分組,才能進(jìn)行后續(xù)的統(tǒng)計(jì)分析。任務(wù)2:根據(jù)任務(wù)1的導(dǎo)入數(shù)據(jù),重新命名為data2,將“銷售金額”列進(jìn)行分段 并生成新列,新列命名為“客戶等級(jí)”。具體分段方法為:將銷售金額的25%分位數(shù)、 50%分位數(shù)、75%分位數(shù)設(shè)為三個(gè)分段點(diǎn),并以此將分為4段,“D”、C”、B”、“A”。 輸出前10個(gè)數(shù)據(jù),查看分段的效果。具體代碼如下:data2 = dataldes = data21銷售金額.describe。cujbins =銷售金額max。cutabels = D?C;B?Adata2r 客戶等級(jí)1=pd.cut(data2銷售金額bins=cut_bins,labels二cutabels) print(data2.head(l 0)輸出結(jié)果如圖4-*所示。Run:4-3C:UsersliliangAnaconda3python.exe C:/U

溫馨提示

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

評(píng)論

0/150

提交評(píng)論