数据分析项目--黑色星期五--Python分析

分析说明

数据:Kaggle数据集黑色星期五,已经有很多人分析过了,还是借着别人的笔记以及自己的理解,自己做一遍最好,发现问题,及时复盘才是学习的良好方法。

数据字段说明:
数据分析项目--黑色星期五--Python分析_第1张图片
职业代码是里面没有写出及具体的职业,只用数字代替的,总共20种
城市分类也是定义A,B,C三类
婚姻状况中0未婚,1已婚
数据分析项目--黑色星期五--Python分析_第2张图片

分析思路

几乎与销售相关的都可以从产品、客户、销售情况三大维度着手分析
对于销售情况,可以做总体的一些分析,
比如销售总额,总订单数,客户平均消费额,平均订单额,
销售额最高的TOP10商品,消费最高的TOP10的VVIP用户
从客户情况分析,借助已有的数据,对客户性别、年龄、职业、婚姻、居住地、居住时间长短对消费的影响做分析
产品的分析基本也是结合客户特征做分析的

1.数据查看清洗

import numpy as np
import pandas as pd
data=pd.read_csv('BlackFriday.csv')
data.info()
dt=data.rename(columns={'User_ID':'用户ID','Product_ID':'产品ID','Gender':'性别','Age':'年龄','Occupation':'职业','City_Category':'城市',
                      'Stay_In_Current_City_Years':'居住时长','Marital_Status':'婚姻状态',
                      'Product_Category_1':'产品分类1','Product_Category_2':'产品分类2','Product_Category_3':'产品分类3','Purchase':'购买金额'})

数据分析项目--黑色星期五--Python分析_第3张图片

方框里面的两个字段有缺失值, 并且确实率比较高,所以删除的方式不可取,因为产品分类不太明确,可以不分析这两个字段
数据分析项目--黑色星期五--Python分析_第4张图片
以上是总体的消费额等数值的计算

2.客户分析

2.1 客户的性别分析数据分析项目--黑色星期五--Python分析_第5张图片

从数据看出,男女无论是用户数量还是消费额,都存在较大差距,用户数上男性几乎是2女性的2倍,消费额上,男性的总体消费额是女性的3倍多,数据有点出人意料哦。
Python的matplotlib作图太不熟悉了,看着都会,一做全废,一个饼图给我难倒了,先放一放吧,最后专门突破饼图

2.2客户年龄段分析

数据分析项目--黑色星期五--Python分析_第6张图片

fig, ax = plt.subplots(figsize=(10,5))
sc = sns.color_palette("Greens", 2)
sns.countplot(dt['年龄'], order=['0-17', '18-25', '26-35', '36-45', '46-50', '51-55', '55+'], palette=sc)
plt.xlabel('', fontsize=24)
plt.ylabel('', fontsize=24)
plt.legend(fontsize=24)
plt.show()

还是直方图好做多了
数据分析项目--黑色星期五--Python分析_第7张图片
客户群体中,25-35年龄段的客户人数最多,那么理论上他们产生的购买金额也应该是最高的

import matplotlib.pyplot as plt
import numpy as np
y=list(dt.groupby('年龄')['购买金额'].sum())
x=['0-17', '18-25', '26-35', '36-45', '46-50', '51-55', '55+']
plt.bar(x,y)   #alpha设置透明度,0为完全透明
plt.xlabel('年龄')
plt.ylabel('购买金额')
for a,b in zip(x,y):
    plt.text(a, b+1000, '%.0f' % b, ha='center', va= 'bottom',fontsize=7)
plt.show()

数据分析项目--黑色星期五--Python分析_第8张图片
#后面的for那一段是图表增加数字标签的代码,而且matplotlib通用,感谢简书博主博观厚积的博文,学习了,这是链接数据标签

2.3 职业分析
x=list(range(21))
y=list(dt.drop_duplicates('用户ID').groupby('职业')['用户ID'].count())
plt.bar(x,y,width = 0.35,align='center',color = 'c',alpha=0.8)
plt.xticks(x,size='large',rotation=30)
plt.xlabel('职业代码')
plt.ylabel('用户数')
for a,b in zip(x,y):
    plt.text(a, b+10, '%.0f' % b, ha='center', va= 'bottom',fontsize=7)
plt.show()

数据分析项目--黑色星期五--Python分析_第9张图片

import matplotlib
matplotlib.rcParams['font.sans-serif']=['SimHei']# 用黑体显示中文
matplotlib.rcParams['axes.unicode_minus']=False 
x=list(range(21))
y=list(dt.groupby('职业')['购买金额'].sum())
plt.bar(x,y,width = 0.35,align='center',color = 'c',alpha=0.8)
plt.xticks(x,size='large',rotation=30)
plt.xlabel('职业代码')
plt.ylabel('购买金额')
for a,b in zip(x,y):
    plt.text(a, b+1000, '%.0f' % b, ha='center', va= 'bottom',fontsize=7)
plt.show()

数据分析项目--黑色星期五--Python分析_第10张图片
做到这里才发现,图例项的中文没出来,前面的直方图是框框,需要提前进行下设置,相当于调用字体吧

2.4 婚姻的影响

数据分析项目--黑色星期五--Python分析_第11张图片
0代表未婚,1代表已婚,以上只能看出未婚人士购买力稍强于已婚人士

2.5 居住地的影响

数据分析项目--黑色星期五--Python分析_第12张图片
在居住地的用户和消费额统计中可以看出C城的用户最多,占了一半以上的用户,但是C城的人均消费额却是最低的,比A.B低了一个数量级

2.6 居住时长的影响

数据分析项目--黑色星期五--Python分析_第13张图片
居住1年时长的用户和消费总额都是最多的,但是人均上并没有什么优势,人均消费额还是3年的用户最高,值得注意的一点是居住时长0年的人,人均消费额居然是第2高,看有人的分析将这部分人定义为游客

3.产品分析

销量前10
数据分析项目--黑色星期五--Python分析_第14张图片
消费金额前10
数据分析项目--黑色星期五--Python分析_第15张图片
商品重叠率50%,这个和单价的关系较大
数据分析项目--黑色星期五--Python分析_第16张图片
以上是针对用户和产品做的一个黄金二八法则的验证,以上可以看出,在主要客户方面还是比较可观的,20%的主要用户创造了73%的消费额,产品方面的话,有蛮多因素,不过这个数据还是相对较好的,毕竟这是黑色星期五,产品种类很多,不像一个有具体品类,有主打商品的店铺可以明确分析,而且提供的数据集也没有明确提供具体品类啥的,就不做分析了。

数据集原先的下载链接好像失效了,关注VX公众号:随便一写,发送黑色星期五

你可能感兴趣的:(python)