分析背景
CN公司是一家主营家电类目的电商公司,最近小家电类目的订单数量、产品浏览量、搜索数量等都有所下降,目前计划对小家电类目进行一次季末促销活动,从用户画像特征方向给营销活动建议,以降低产品库存,提高小家电类目的销量。
促销活动落地的方向:
活动的受众群体定位
受众群体的消费偏好
活动的推送时间
数据来源
数据主要来源于网站过去保存的用户信息表和用户在2014-11-18至2014-12-18间一个月的行为记录,用户信息表主要记录了用户ID、性别、年龄、省、市、婚姻状况、学历和职业信息,订单表的主要字段有用户ID,商品ID,行为类型,商品种类,发生时间。
数据来源:https://pan.baidu.com/s/12THYaix3Xoomj0LKa77QSQ
提取码:m20o
一、用户的基本属性分析
1.1读取用户信息数据
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] #作图时正常显示中文
df=pd.read_excel('user_data.xlsx')
print(df.head())
out:
print(df.info())
out:
总共记录了222条用户的信息,都没有缺失值。
1.2用户的性别分布
xb=df['user_id'].groupby(df['gender']).count()
print(xb)
out:
xb.plot.pie(autopct='%1.1f%%') #autopct='%1.1f%%'显示占比
plt.show()
男性用户占比52.7%,女性用户占比47.3%,男性比女性稍多些。
1.3用户的年龄分布
bins=[0,20,25,30,35,40,45,50,55,1000]
labels=["(0-20]","(20-25]","(25-30]","(30-35]","(35-40]","(40-45]","(45-50]","(50-55]","55岁以上"]
df['age_group']=pd.cut(df['age'],bins=bins,labels=labels)
print(df.head())
得到新的一列按年龄分组的情况
nl=df['user_id'].groupby(df['age_group']).count()
nl.plot.bar()
plt.show()
用户主要集中在25-40岁之间,以中青年为主,20岁以下的年轻用户和40岁以上的中老年用户较少。
1.4用户的地域分布
sf=df['user_id'].groupby(df['province']).count().sort_values()
print(sf)
out:
sf.plot.barh()
plt.show()
用户最多的是广东省,有52人,其次是北京,49人,上海有35人,用户主要集中在北上广等发达省市。
cs=df['user_id'].groupby(df['city']).count().sort_values()
print(cs)
out:
cs.plot.barh()
plt.show()
同样,在城市方面用户也主要集中在北上广等主要发达城市中。
1.5用户的婚育情况
hy=df['user_id'].groupby(df['marriage']).count()
print(hy)
out:
hy.plot.pie(autopct='%1.1f%%')
plt.show()
已婚用户有139人,占62.6%,未婚用户有83人,占37.4%,用户以已婚用户为主,说明小家电类目更受家庭用户喜爱。
1.6用户的学历分布
xl=df['user_id'].groupby(df['eduction']).count()
print(xl)
xl.plot.bar()
plt.show()
用户主要以本科学历为主。
1.7用户的职业分布
zy=df['user_id'].groupby(df['job']).count()
print(zy)
out:
zy.plot.bar()
plt.show()
用户的职业一般为互联网从业人员、公务员及白领,主要以消费水平较高、工作较稳定、对生活品质有一定要求的消费群体为主,这也跟城市、学历有关。
二、用户的购买行为属性分析
2.1读取订单信息数据
data=pd.read_excel('order_data.xlsx')
print(data.head())
print(data.info())
有25万多条数据,没有缺失值。
data=data[data['behavior_type']==1] #我们需要查看购买数据,行为类型1为购买数据
2.2购买时间情况:按周几及时间点统计
2.1.1
data['time']=pd.to_datetime(data['time']) #转换为时间格式
data['hour']=data['time'].dt.hour #提取时间点
print(data[['time','hour']].head())
out:
sk=data['user_id'].groupby(data['hour']).count()
print(sk)
out:
sk.plot(xticks=range(0,24)) #xticks=range(0,24)设置x轴刻度
plt.show()
从图中可以看出,晚上9点到10点的下单用户是最多的。
2.1.2
data['week']=data['time'].dt.dayofweek+1 #提取周几,默认周一是从0计算,所以我们加1
print(data[['time','week']].head())
out:
zj=data['user_id'].groupby(data['week']).count()
print(zj)
zj.plot()
plt.show()
周四的下单人数是最多的,达到38137,其他天的下单人数也能达到3万以上。
2.3购买产品偏好:按商品和商品大类统计
2.3.1
sp=data['item_id'].value_counts()
print(sp.head(10))
out:
下单次数排名前三的三个商品ID为“258745390”,“147908099”,“15909257”,其中“258745390”的下单次数达到109次。
2.3.2
dl=data['item_category'].value_counts()
print(dl.head())
out:
最受欢迎的五大商品种类为“13230”,“5894”,“1863”,“6513”,“5027”,其中“13230”的下单次数达到10383次。
三、典型用户画像
由此,我们可以得到一个典型用户画像:
男性,年龄在30岁左右,一线城市居住,已婚,本科学历,并且在一家互联网公司任职,收入较高,注重追求生活品质,喜欢在周四到周五晚上的9点到10点下单,最喜欢的商品是“258745390”,最喜欢的商品大类为“13230”。(从性别、年龄、地区、婚育、学历、职业、收入、下单时间、消费偏好、价格区间等方面分析)
所以对于此次营销活动,可以在周四和周五晚上七点到八点的时间里,对相关用户进行推送,主打商品大类“13230”里的相关产品。