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的数据处理,可视化展示等技术分析数据的内在特性。
网友评论