黑色星期五消費(fèi)數(shù)據(jù)分析

分析目標(biāo)

本次分析的目標(biāo)以用戶和消費(fèi)產(chǎn)品為主衷蜓,意在構(gòu)建用戶畫像拟糕。找出熱門銷售產(chǎn)品判呕,為下一次促銷做準(zhǔn)備。

數(shù)據(jù)獲取

數(shù)據(jù)來源于kaggle的Black Friday數(shù)據(jù)集送滞,數(shù)據(jù)特征如下:

  • 客戶ID
  • 產(chǎn)品ID
  • 性別
  • 年齡段
  • 客戶職業(yè)
  • 所在城市類別
  • 在當(dāng)前城市生活年份
  • 婚姻狀況
  • 購(gòu)買產(chǎn)品所屬類別1
  • 購(gòu)買產(chǎn)品所屬類別2
  • 購(gòu)買產(chǎn)品所屬類別3
  • 消費(fèi)額(美元)

數(shù)據(jù)導(dǎo)入

導(dǎo)入相關(guān)包

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

%matplotlib inline

# 中文設(shè)置
plt.rcParams['font.sans-serif'] = ['SimHei']

# 坐標(biāo)軸正常顯示負(fù)數(shù)
plt.rcParams['axes.unicode_minus'] = False

# 使用R語(yǔ)言的繪圖風(fēng)格
plt.style.use('ggplot')
df = pd.read_csv('black_friday.csv')
df.head()
image.png

首先查看數(shù)據(jù)整體情況侠草,檢查是否存在缺失值。

df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 550068 entries, 0 to 550067
Data columns (total 12 columns):
User_ID                       550068 non-null int64
Product_ID                    550068 non-null object
Gender                        550068 non-null object
Age                           550068 non-null object
Occupation                    550068 non-null int64
City_Category                 550068 non-null object
Stay_In_Current_City_Years    550068 non-null object
Marital_Status                550068 non-null int64
Product_Category_1            550068 non-null int64
Product_Category_2            376430 non-null float64
Product_Category_3            166821 non-null float64
Purchase                      550068 non-null int64
dtypes: float64(2), int64(5), object(5)
memory usage: 50.4+ MB

Product_Category_2和Product_Category_3都存在大量的缺失值犁嗅。

print('Product_Category_2 缺失值占比:', df.Product_Category_2.isna().sum()/len(df))
print('Product_Category_3 缺失值占比:', df.Product_Category_3.isna().sum()/len(df))
Product_Category_2 缺失值占比: 0.3156664266963357
Product_Category_3 缺失值占比: 0.6967265865311197

品類2缺失數(shù)據(jù)166986條边涕,缺失數(shù)據(jù)占比達(dá)31%,品類3缺失數(shù)據(jù)373299條褂微,缺失數(shù)據(jù)占比達(dá)69%功蜓,品類數(shù)據(jù)缺失過于嚴(yán)重,即使進(jìn)行填充宠蚂,也會(huì)產(chǎn)生極大的誤差式撼,因此分析時(shí)忽略品類2、品類3的數(shù)據(jù)求厕。
刪除品類2和品類3的數(shù)據(jù)著隆。

df = df.dropna(axis=1)
df.head()
image.png

構(gòu)建用戶畫像

性別對(duì)消費(fèi)的影響

genderPurchase = df.pivot_table(index=['User_ID', 'Gender'], values='Purchase', aggfunc='sum').reset_index()
genderCount = genderPurchase.groupby('Gender').size().reset_index(name='peoNum')
genderCount['Percentage'] = genderCount.peoNum / genderCount.peoNum.sum()
genderCount
image.png

女性消費(fèi)者人數(shù)為1666人扰楼,占所有消費(fèi)者的28.3%;男性消費(fèi)者人數(shù)為4225人美浦,占所有消費(fèi)者的71.7%弦赖,是女性消費(fèi)者的2.5倍。消費(fèi)者以男性為主體抵代。

groupedGender = (df.groupby('Gender').Purchase.sum() / 100000000).round(2).reset_index()
groupedGender['Percentage'] = groupedGender.Purchase / groupedGender.Purchase.sum()
groupedGender
image.png

女性消費(fèi)總額為11.86億元,占總銷售額的23.3%;男性消費(fèi)總額為39.10億元腾节,占總銷售額的76.7%,
是女性消費(fèi)總量的3.3倍荤牍。

plt.figure(figsize=(10, 5))
plt.bar(groupedGender.Gender, groupedGender.Purchase)
plt.title('性別-消費(fèi)總額對(duì)比')
plt.xlabel('性別')
plt.ylabel('消費(fèi)總額/億元')
image.png
plt.pie(groupedGender.Purchase,labels=groupedGender.Gender,autopct='%.1f%%')
plt.title('黑色星期五\n男vs女消費(fèi)占比')
image.png

男性消費(fèi)者數(shù)量是女性消費(fèi)者的2.5倍案腺,但消費(fèi)總額卻是女性消費(fèi)總額的3.3倍。原因推測(cè)為男性購(gòu)買商品的客單價(jià)比女性的要高康吵。

年齡對(duì)消費(fèi)的影響

agePurchase = (df.groupby('Age').Purchase.sum() / 100000000).round(3).reset_index()
agePurchase
image.png

消費(fèi)主力為18-25劈榨、26-35、36-45三個(gè)年齡段晦嵌,三者總額占比近8成同辣。其中26-35年齡段為主力中的主力,需要重點(diǎn)維護(hù)惭载。18-25和36-45兩個(gè)年齡段應(yīng)想辦法進(jìn)行突破旱函,刺激這兩個(gè)群體消費(fèi),擴(kuò)大盤口描滔。

plt.figure(figsize=(10, 5))
plt.bar(agePurchase.Age, agePurchase.Purchase)
plt.title('不同年齡段消費(fèi)貢獻(xiàn)')
plt.xlabel('年齡段')
plt.ylabel('消費(fèi)總額/億元')

text = agePurchase.Purchase
for i in range(len(text)):
    plt.text(i, text[i]+0.3, str(text[i]), ha='center', va='bottom', fontsize=10)
image.png
plt.figure(figsize=(10, 5))
plt.pie(agePurchase.Purchase, labels=agePurchase.Age, autopct='%.1f%%')
plt.title('黑色星期五\n不同年齡段消費(fèi)占比')
image.png

餅圖能較為直觀的看出各年齡段的消費(fèi)占比棒妨,其中18-45歲區(qū)間內(nèi)的消費(fèi)者需要重點(diǎn)維護(hù)。

城市對(duì)消費(fèi)的影響

cityPurchase = (df.groupby('City_Category').Purchase.sum() / 100000000).round(3).reset_index()
cityPurchase
image.png
plt.figure(figsize=(10, 5))
plt.bar(cityPurchase.City_Category, cityPurchase.Purchase)
plt.title('不同城市消費(fèi)貢獻(xiàn)')
plt.xlabel('城市')
plt.ylabel('消費(fèi)總額/億元')

text = cityPurchase.Purchase
for i in range(len(text)):
    plt.text(i, text[i]+0.3, str(text[i]), ha='center', va='bottom', fontsize=10)
image.png
plt.figure(figsize=(10, 5))
plt.pie(cityPurchase.Purchase, labels=cityPurchase.City_Category, autopct='%.1f%%')
plt.title('黑色星期五\n不同城市消費(fèi)占比')
image.png

B城市消費(fèi)總額為21.155億元占比41.5%含长,排名第一券腔;C城市消費(fèi)總額16.638億元占比32.7%排第二;A城市消費(fèi)總額13.165億元占比25.8%排最后拘泞。

職業(yè)對(duì)消費(fèi)的影響

occupationPurchase = (df.groupby('Occupation').Purchase.sum() / 10000000).round(2).reset_index()
occupationPurchase.head()
image.png
plt.figure(figsize=(10, 5))
plt.bar(occupationPurchase.Occupation, occupationPurchase.Purchase)
plt.title('不同職業(yè)消費(fèi)貢獻(xiàn)')
plt.xlabel('職業(yè)')
plt.ylabel('消費(fèi)總額/億元')

text = occupationPurchase.Purchase
for i in range(len(text)):
    plt.text(i, text[i]+0.3, str(text[i]), ha='center', va='bottom', fontsize=10)
image.png
occupationPurchase.sort_values(by='Purchase', ascending=False).head()
image.png

排名前五的職業(yè)為4,0,7,1,17纷纫,前五名消費(fèi)總額占比為:

occupationPurchase.sort_values(by='Purchase', ascending=False).head().Purchase.sum() / occupationPurchase.Purchase.sum()
0.5253355836407881

結(jié)合圖形可知,消費(fèi)能力最強(qiáng)的5中職業(yè)分別是職業(yè)4陪腌、職業(yè)0辱魁、職業(yè)7、職業(yè)1诗鸭、職業(yè)17商叹,職業(yè)4、職業(yè)0是所有職業(yè)中消費(fèi)能力最強(qiáng)的只泼,應(yīng)當(dāng)重點(diǎn)關(guān)注。

婚姻狀況對(duì)消費(fèi)的影響

maritalPurchase = (df.groupby('Marital_Status').Purchase.sum() / 10000000).round(2).reset_index()
maritalPurchase.Marital_Status[0] = '未婚'
maritalPurchase.Marital_Status[1] = '已婚'
maritalPurchase
image.png
plt.figure(figsize=(10, 5))
plt.pie(maritalPurchase.Purchase,labels=maritalPurchase.Marital_Status,autopct='%.1f%%')
plt.title('黑色星期五\n已婚vs未婚消費(fèi)總額占比')
image.png

未婚人群總消費(fèi)占比比已婚人群高接近20%

城市生活年份對(duì)消費(fèi)的影響

scyPurchase = (df.groupby('Stay_In_Current_City_Years').Purchase.sum()/100000000).round(2).reset_index()
scyPurchase
image.png
plt.figure(figsize=(10, 5))
plt.bar(scyPurchase.Stay_In_Current_City_Years, scyPurchase.Purchase)
plt.title('城市生活年份對(duì)消費(fèi)的影響')
plt.xlabel('年份')
plt.ylabel('消費(fèi)總額/億元')

text = list(scyPurchase.Purchase)
for i in range(len(scyPurchase)):
    plt.text(i, text[i]+0.2, str(text[i]), ha='center', va='bottom', fontsize=10)
image.png
plt.figure(figsize=(10, 5))
plt.pie(scyPurchase.Purchase, labels=scyPurchase.Stay_In_Current_City_Years, autopct='%.1f%%')
plt.title('黑色星期五\n城市生活年份消費(fèi)總額占比')
image.png

在當(dāng)前城市中生活一年左右的人消費(fèi)力最強(qiáng)卵洗,其次是在當(dāng)前城市生活2请唱、3年的弥咪。

商品分析

熱銷品、滯銷品分析

熱銷品前五:

df.Product_Category_1.astype(str)
productPurchase = df.pivot_table(index=['Product_ID', 'Product_Category_1'], values='Purchase', aggfunc='sum').reset_index()
productPurchase.groupby('Product_ID').Purchase.sum().reset_index().sort_values(by='Purchase', ascending=False).head()
image.png

滯銷品前五:

productPurchase.groupby('Product_ID').Purchase.sum().reset_index().sort_values(by='Purchase', ascending=False).tail()
image.png

熱銷品類前五:

productPurchase.groupby('Product_Category_1').Purchase.sum().reset_index().sort_values(by='Purchase', ascending=False).head()
image.png

滯銷品類前五:

productPurchase.groupby('Product_Category_1').Purchase.sum().reset_index().sort_values(by='Purchase', ascending=False).tail()
image.png

熱銷品前五依次為P00025442十绑、P00110742聚至、P00255842、P00059442本橙、P00184942扳躬,這幾款產(chǎn)品銷售額在2500000左右,應(yīng)該作為下次大促主推產(chǎn)品甚亭。P00309042贷币、P00091742這兩個(gè)商品嚴(yán)重滯銷,應(yīng)考慮清倉(cāng)甩貨或者重新包裝上架亏狰。熱銷品類前五分別為1役纹、5、8暇唾、6促脉、2,其中1類產(chǎn)品的銷售額是排名第二名的5類產(chǎn)品的兩倍策州,應(yīng)重點(diǎn)關(guān)注瘸味。

銷售量分析

purchaseCount = df[['Product_ID', 'Purchase']].groupby('Product_ID').Purchase.count().reset_index().sort_values(by='Purchase', ascending=False)[:10]
purchaseCount
image.png
plt.figure(figsize=(10, 5))
plt.bar(purchaseCount.Product_ID, purchaseCount.Purchase)
plt.xlabel('產(chǎn)品ID')
plt.ylabel('銷量')

text = list(purchaseCount.Purchase)
for i in range(len(purchaseCount)):
    plt.text(x[i], text[i]+0.5, str(text[i]), ha='center', va='bottom', fontsize=10)
plt.title('銷量前十商品')
image.png

產(chǎn)品銷量前3分別是:P00265242、P00110742够挂、P00112142,應(yīng)當(dāng)予以重點(diǎn)關(guān)注旁仿,P00265242產(chǎn)品銷量雖然高但是沒有進(jìn)入銷售額前10名,說明銷售單價(jià)較低下硕,可考慮下一次大促作為引流爆款丁逝。

總體營(yíng)收指標(biāo)分析

客單價(jià)

pct = df.groupby('User_ID').Purchase.sum().reset_index()
(pct.Purchase.sum() / pct.User_ID.count()).round(2)
865016.59

客單價(jià)為865016.59美元。由于缺乏訂單ID和銷售數(shù)量等特征梭姓,件單價(jià)和連帶率無法計(jì)算霜幼。

用戶累計(jì)銷售金額占比

userCumsum = df.groupby('User_ID').sum().sort_values(by='Purchase', ascending=False).apply(lambda x:x.cumsum()/x.sum()).reset_index()
userCumsum[['User_ID', 'Purchase']].head()
image.png
plt.figure(figsize=(10, 5))
userCumsum.Purchase.plot()
plt.title("用戶累計(jì)消費(fèi)占比")
plt.ylabel('消費(fèi)占比')
plt.xlabel('排序索引')
image.png
userCumsum.loc[userCumsum.Purchase>0.8,['User_ID', 'Purchase']][:5]
image.png

經(jīng)過查詢得知索引為2520的顧客累計(jì)消費(fèi)金額為80%,可以導(dǎo)出這批顧客的id誉尖,作為重點(diǎn)對(duì)象精心維護(hù)罪既。

總結(jié)

  • 用戶畫像

男性消費(fèi)者

26-35歲

B城市

職業(yè)0、4铡恕、7

未婚

當(dāng)前所在城市生活1-2年

  • 暢銷產(chǎn)品P00025442琢感、P0011074銷售額在2500000左右,應(yīng)該作為下次大促主推盈利型產(chǎn)品探熔。
    P00309042驹针、P00091742嚴(yán)重滯銷,應(yīng)該調(diào)整戰(zhàn)略選擇清倉(cāng)放棄或重新‘包裝’

  • 暢銷類目前5名為1诀艰、5柬甥、8饮六、6、2苛蒲,1類產(chǎn)品是第二名的2倍卤橄,應(yīng)該重點(diǎn)關(guān)注并給予一定的資源傾斜,這幾大類產(chǎn)品應(yīng)該作為重點(diǎn)保障品類臂外,備足貨源窟扑,合理安排庫(kù)存并對(duì)庫(kù)存進(jìn)行實(shí)時(shí)預(yù)警。

  • P00265242產(chǎn)品銷量雖然排名第一但是沒有進(jìn)入銷售額前10名漏健,說明銷售單價(jià)較低嚎货,可考慮作為下一次大促時(shí)的引流爆款

  • A、B城市消費(fèi)能力較強(qiáng)漾肮,C城市與之相比有較大的上升空間厂抖,下次大促不妨對(duì)C城市適當(dāng)傾斜一定資源,測(cè)試其消費(fèi)上升空間

  • 對(duì)于累計(jì)消費(fèi)額占比達(dá)80%的這批頭部客戶克懊,需要精心維護(hù)忱辅;優(yōu)惠券之類的促銷手段可以適當(dāng)向已婚人士?jī)A斜

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市谭溉,隨后出現(xiàn)的幾起案子墙懂,更是在濱河造成了極大的恐慌,老刑警劉巖扮念,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件损搬,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡柜与,警方通過查閱死者的電腦和手機(jī)巧勤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來弄匕,“玉大人颅悉,你說我怎么就攤上這事∏ń常” “怎么了剩瓶?”我有些...
    開封第一講書人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)城丧。 經(jīng)常有香客問我延曙,道長(zhǎng),這世上最難降的妖魔是什么亡哄? 我笑而不...
    開封第一講書人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任枝缔,我火速辦了婚禮,結(jié)果婚禮上蚊惯,老公的妹妹穿的比我還像新娘魂仍。我一直安慰自己拐辽,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開白布擦酌。 她就那樣靜靜地躺著,像睡著了一般菠劝。 火紅的嫁衣襯著肌膚如雪赊舶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,198評(píng)論 1 299
  • 那天赶诊,我揣著相機(jī)與錄音笼平,去河邊找鬼。 笑死舔痪,一個(gè)胖子當(dāng)著我的面吹牛寓调,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锄码,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼夺英,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了滋捶?” 一聲冷哼從身側(cè)響起痛悯,我...
    開封第一講書人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎重窟,沒想到半個(gè)月后载萌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡巡扇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年扭仁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厅翔。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乖坠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出知给,到底是詐尸還是另有隱情瓤帚,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布涩赢,位于F島的核電站戈次,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏筒扒。R本人自食惡果不足惜怯邪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望花墩。 院中可真熱鬧悬秉,春花似錦澄步、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評(píng)論 0 22
  • 我被黑心中介騙來泰國(guó)打工东羹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人忠烛。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓属提,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親美尸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子冤议,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 【分析流程】 一、項(xiàng)目背景及目的 在美國(guó)火惊,“黑色星期五”(每年11月的第四個(gè)星期五)已成為一種購(gòu)物文化求类,商...
    jljljljl閱讀 944評(píng)論 0 0
  • 魔鬼早就贏得了對(duì)上帝的斗爭(zhēng) 并假裝成他的模樣坐上了他的寶座 散布著虛假的慈悲來嘲弄著世人的愚笨 所以年輕的人啊 別...
    廣意_閱讀 170評(píng)論 5 3
  • 對(duì)于錢的概念一直有。外公一直嘮叨“一文錢逼死英雄漢屹耐,沒錢寸步難行”尸疆。舅舅社辦工廠下崗,一直嘆氣“賺錢比吃屎還難”惶岭。...
    喜悅生活家閱讀 1,038評(píng)論 6 18
  • 路過公園里一個(gè)生滿鐵銹的 秋千 兒時(shí)記憶猛然涌來 淚水被思緒 擠出眼眶 那棗樹之間 粗糙堅(jiān)固的繩子被老人 綁在樹上...
    池亦珩閱讀 333評(píng)論 1 8
  • 屋前銀杏 旅人記事本 大樓前的花園里… 今天早晨寿弱,才注意到有一棵壯碩的銀杏。 也許是它一頭“黃的純凈”的枝葉按灶,太過...
    天狼星_49af閱讀 256評(píng)論 0 3