黑色星期五数据分析

1.数据准备

本次黑色星期五数据集来自kaggle,关于零售商店中黑色星期五的55万观察数据集,它包含不同类型的数字或分类变量和缺失值。利用Jupyter Notebook对数据集进行清洗处理、可视化操作。一共12个字段,538k条数据。

数据来源:

黑色星期五数据集

字段说明:


2. 数据分析内容

对于商品销售类的数据分析方向可以从 销售画像,用户画像、商品画像 三个维度展开分析。

销售画像主要针对以下几个方面:


用户画像主要针对以下几个方面:


商品画像主要针对以下几个方面:


3.数据清洗

加载数据,查看数据情况:

import numpy as np

import pandas as pd

import matplotlib.pyplot  as plt

data = pd.read_csv('BlackFriday.csv')

data.info()


因产品分类存在缺失值,无法填补,故去掉产品分类字段,不作为分析的内容。


4.数据分析

【1】销售画像

销售总额

用户总数,用户人均消费金额

商品总量

【2】用户画像

用户性别分布和消费情况

用户性别分布情况


男女消费金额分布情况


import seaborn as sns

plt.style.use("fivethirtyeight")

sns.set_style({'font.sans-serif':['simhei','Arial']}) #设置字体

labels = ['Male','Female']

x = [M,F]

explode = (0.1,0)

plt.pie(x,labels=labels,autopct='%.0f%%',textprops = {'fontsize':10,'color':'k'},

      explode=explode,shadow=True,startangle=60,pctdistance = 0.5)

plt.axis('equal')

plt.title('用户性别分布情况')

plt.show()

可以看出,本次黑色星期五用户中,男性用户约为女性用户的2.5倍,男性消费水平是女性消费水平的3.3倍,男性在数量和消费金额上都比女性多。

用户年龄分布和消费情况

dt.drop_duplicates('User_ID').groupby('Age')['User_ID'].count()


用户年龄分布情况

dt.groupby('Age')['Purchase'].sum()


不同年龄消费金额分布


用户年龄主要集中在18-45之间,其中26-35用户数占比总用户数的34.9%,消费金额占总销售额的40%,可见这个年龄段是本次活动的主力军。

用户职业分布和消费情况

用户职业分布


不同职业消费金额分布

4,0,7三个职业用户数占总用户数的35.6%,其消费金额前三也是4,0,7,可见,这三个职业的消费人数和消费金额大于其他职业。

用户婚姻分布和消费情况

dt.drop_duplicates('User_ID').groupby('Marital_Status')['User_ID'].count()


用户婚姻分布

dt.groupby('Marital_Status')['Purchase'].sum()


不同婚姻状态的消费情况

dt.groupby('Marital_Status')['Purchase'].sum()/dt.groupby('Marital_Status')['User_ID'].count()


未婚和已婚的人均消费情况

未婚在本次活动中占比大于已婚,但是未婚和已婚在人均消费情况下基本一致,可见婚姻状态对消费金额影响不是很大。

用户城市居住时间分布和消费情况

dt.drop_duplicates('User_ID').groupby('Stay_In_Current_City_Years')['User_ID'].count()


用户在当前城市居住时间分布

dt.groupby('Stay_In_Current_City_Years')['Purchase'].sum()


不同用户在当前城市居住时间消费情况

当前城市居住时间大部分是在1年,消费水平在四个类别中最高。

【商品画像】

最受喜爱的商品分布和消费情况

dt.groupby('Product_ID')['User_ID'].count().sort_values(ascending=False).head(10)


最受喜爱的商品前十分布

dt.groupby('Product_ID')['Purchase'].sum().sort_values(ascending=False).head(10)


成交金额最多的商品前十分布情况

最受喜爱的商品前十分布和成交金额最多的商品重叠部分比较少,不过也是正常,成交数量最多若是单价不高,成交金额也就不是最多。

男女消费者喜爱的商品分布和消费情况

男性消费者在哪些商品比较受欢迎


女性消费者在哪些商品比较受欢迎

喜爱的商品在男女消费者之间差距比较大,重复的商品数不多。

不同年龄段喜欢的商品分布和消费情况

不同年龄段喜欢的商品分布



不同年龄段喜欢的消费情况

未婚和已婚喜欢的商品分布和消费情况


未婚用户最受喜爱前十的商品名


已婚用户最受喜爱前十的商品名  

未婚用户和已婚用户最受喜爱前十商品中有7个是一样的,可以大致看出在是否结婚对商品的需求影响不明显。

不同职业喜欢的商品分布和消费情况

以4,0,7三个职业进行分析

dt[dt['Occupation']==4].groupby('Product_ID')['User_ID'].count().sort_values(ascending=False).head(10)

dt[dt['Occupation']==0].groupby('Product_ID')['User_ID'].count().sort_values(ascending=False).head(10)

dt[dt['Occupation']==7].groupby('Product_ID')['User_ID'].count().sort_values(ascending=False).head(10)

dt[dt['Occupation']==4].groupby('Product_ID')['Purchase'].sum().sort_values(ascending=False).head(10)

dt[dt['Occupation']==0].groupby('Product_ID')['Purchase'].sum().sort_values(ascending=False).head(10)

dt[dt['Occupation']==7].groupby('Product_ID')['Purchase'].sum().sort_values(ascending=False).head(10)

4,0,7三职业喜欢的商品分布和消费情况总体大致一样,喜欢商品重复率高。

不同城市喜欢的商品分布和消费情况

dt[dt['City_Category']=='A'].groupby('Product_ID')['User_ID'].count().sort_values(ascending=False).head(10)

dt[dt['City_Category']=='B'].groupby('Product_ID')['User_ID'].count().sort_values(ascending=False).head(10)

dt[dt['City_Category']=='C'].groupby('Product_ID')['User_ID'].count().sort_values(ascending=False).head(10)

dt[dt['City_Category']=='A'].groupby('City_Category')['Purchase'].sum()

dt[dt['City_Category']=='B'].groupby('City_Category')['Purchase'].sum()

dt[dt['City_Category']=='C'].groupby('City_Category')['Purchase'].sum()

A,B,C三城市最受欢迎的商品都是P00265242,其他商品三座城市的重叠率高,可见,ABC城市的人群在商品需求方面比较类似。

5.总结

本文利用实际数据进行分析,从 销售画像,用户画像、商品画像三个维度展开,基于Python的数据处理,可视化展示等技术分析数据的内在特性。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容