利用某商店黑色星期五進(jìn)行數(shù)據(jù)可視化(Python)

首先,我們使用的三個包分別為pandas,matplotlib.pyplot,seaborn,首先我們導(dǎo)入這三個包,代碼如下所示:

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

我們用到的黑五數(shù)據(jù)表如下:


黑五購物數(shù)據(jù)表(前半部分)


黑五購物數(shù)據(jù)表(后半部分)

一:可視化年齡與購物金額的關(guān)系

我們想要知道年齡和購買金額是否有聯(lián)系,該如何可視化它們來供我們決策呢?

首先我們導(dǎo)入數(shù)據(jù),然后創(chuàng)建一個新表,等于以年齡分組購買金額的均值,之后X軸為購買金額,Y軸為年齡,顏色設(shè)置為購買金額越大,顏色越淺,此處圓圈大小設(shè)置為購買金額的1/4,其代碼如下所示:

frame = pd.read_csv(r'C:\Users\Administrator\Desktop\新建文件夾\BlackFriday.csv')

result = frame[['Purchase']].groupby(frame['Age']).mean()

plt.scatter(result['Purchase'],result.index,c=result['Purchase'],s=result['Purchase']*(1/4))

plt.colorbar()

plt.show()

得到可視化圖表,如下所示:


年齡與購買金額之間的關(guān)系

根據(jù)數(shù)據(jù)可視化散點(diǎn)圖,我們可以得知消費(fèi)者年齡在36到45之前,隨著年齡增長,購買金額會越來越大,但是到了46歲到50歲的時候,購買金額會大幅下降,到了51到55歲時候購物金額會大幅上漲,55歲之后會小幅下降

二:可視化當(dāng)?shù)鼐幼r長和購物金額的關(guān)系

我們想要知道當(dāng)?shù)鼐幼r長和購買金額是否有聯(lián)系,該如何可視化它們來供我們決策呢?

首先我們導(dǎo)入數(shù)據(jù),然后創(chuàng)建一個新表,等于以當(dāng)?shù)鼐幼r長分組購買金額的均值,之后X軸為購買金額,Y軸為當(dāng)?shù)鼐幼r長,顏色設(shè)置為購買金額越大,顏色越淺,此處圓圈大小設(shè)置為購買金額的1/4,其代碼如下所示:

frame = pd.read_csv(r'C:\Users\Administrator\Desktop\新建文件夾\BlackFriday.csv')

result = frame[['Purchase']].groupby(frame['Stay_In_Current_City_Years']).mean()

plt.scatter(result['Purchase'],result.index,c=result['Purchase'],s=result['Purchase']*(1/4))

plt.colorbar()

plt.show()

居住時間與年齡間的關(guān)系

根據(jù)圖表可知,居住不到一年的顧客購買金額最少,而購買最多的是居住2年的用戶,其各自購買程度如圖所示:

三:可視化各種因素的相關(guān)性

我們該如何知道各種因素之間的關(guān)聯(lián)性如何呢?

這時候我們就需要熱力圖了,應(yīng)對無法進(jìn)行相關(guān)性分析的數(shù)據(jù)進(jìn)行修改,將其修改為可相關(guān)的數(shù)據(jù)類型,并對其進(jìn)行擬合,將其繪制成熱力圖來進(jìn)行展示,其代碼如下:

frame = pd.read_csv(r'C:\Users\Administrator\Desktop\新建文件夾\BlackFriday.csv')

pd.set_option('display.max_columns',None)

frame['Age'] = frame['Age'].apply(lambda x :x[0])

frame.loc[frame["Stay_In_Current_City_Years"]=='4+',"Stay_In_Current_City_Years"]=4

frame['Age'] = frame['Age'].astype(int)

frame["Stay_In_Current_City_Years"] = frame["Stay_In_Current_City_Years"].astype(int)

sns.heatmap(frame.corr())

plt.show()

可得到下圖:


熱力圖

其中白色的部分由于是自己和自己進(jìn)行相關(guān),所以最高為1,沒有參考價值,剩下的方格顏色越淺,證明其相關(guān)性越高,所以我們可以得知購買了1,2類產(chǎn)品的人購物額較低。

如果想要將數(shù)據(jù)格進(jìn)行分組,可以使用代碼:

sns.clustermap(frame.corr())

它可以將數(shù)據(jù)的相關(guān)性進(jìn)行歸類分層:


也可以通過sns.countplot()來計算不同屬性的數(shù)據(jù)的計數(shù),例如我們使用代碼:

sns.countplot(frame['Age'])

可以統(tǒng)計到不同年齡組的購物人數(shù),其圖如下:


各年齡組購物人數(shù)

本項目來自中國大學(xué)mooc:中國大學(xué)mooc:南京財經(jīng)大學(xué)Python大數(shù)據(jù)分析

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容