电商用户画像使用

分析的背景

    最近小家电类目的订单数量、产品浏览量、搜索数量等都有所下降, 现在运营同事计划对小家电类目进行一次季末促销活动,希望你能针对小家电的用户特征给出一些建议。

促销活动落地的方向:

  • 活动的受众群体定位
  • 受众群体的偏好
  • 活动的推送时间

导入所需模块

%matplotlib inline
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']

import pymysql
pymysql.install_as_MySQLdb()
from sqlalchemy import create_engine

读取上一节根据用户行为数据获取的标签

engine = create_engine('mysql://root:root@localhost:3306/data')
df =pd.read_sql_query("select * from profile_user_labels",con = engine)
df.head()

在这里插入图片描述

1、用户的基本属性

  • 用户的性别分布
  • 用户的年龄分布
  • 用户的地域分布
  • 用户的婚育情况
  • 用户的学历和职业
df_gender=df.groupby('gender')['user_id'].count()
df_gender

在这里插入图片描述

plt.figure(figsize=(15,10))
plt.pie(df_gender,labels=['女','男'],colors=['#FF69B4','#87CEFA'],autopct='%1.1f%%',explode=[0.01,0.01])
plt.title('性别分布图')
plt.show()

在这里插入图片描述

1.2 用户的年龄分布
#利用pd.cut进行数据离散化切分,注意分组标签和分组数要一致
"""
pandas.cut(x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False)
x:需要切分的数据
bins:切分区域
right : 是否包含右端点默认True,包含
labels:对应标签,用标记来代替返回的bins,若不在该序列中,则返回NaN
retbins:是否返回间距bins
precision:精度
include_lowest:是否包含左端点,默认False,不包含
"""
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)
df.head()

在这里插入图片描述

# 绘制柱状图,,rot=0 表示旋转角度,0-360
age_group_df = df.groupby("age_group").user_id.count().reset_index()
age_group_df.plot.bar(figsize=(10,5),x="age_group",y="user_id",title="用户年龄分布",rot=0)


从数据来看,下单的消费者中男性更多,但是和女性用户数量差别不是特别大,用户集中在20-39岁之间,20岁以下的年轻用户和40岁以上的中老年用户比较少。

1.3 用户的地域分布
# 根据省份统计计数,并且升序排列顺序
pro_user_df = df.groupby("province").user_id.count().reset_index().sort_values(by="user_id",ascending=True)
pro_user_df

在这里插入图片描述

# legend=False 表示不要图例
pro_user_df.plot.barh(figsize=(10,5),x="province",y="user_id",legend=False)

在这里插入图片描述

# 根据城市统计计数,并且升序排列顺序
city_user_df = df.groupby("city").user_id.count().reset_index().sort_values(by="user_id",ascending=True)
city_user_df.plot.barh(figsize=(10,5),x="city",y="user_id",legend=False)

在这里插入图片描述
从数据来看,消费者最多的是来自广东省,其次是北京和上海。排名前五的地区有4个是东部沿海,另外北上广深的超一线城市占据消费用户数量的前4名。

1.4 用户的婚育情况
marry_df = df.groupby("marriage").user_id.count()
marry_df

在这里插入图片描述

# 绘制饼图
plt.figure(figsize=(15,10))
plt.pie(marry_df,labels=['已婚','未婚'],colors=['#FF69B4','#87CEFA'],autopct='%1.1f%%',explode=[0.01,0.01])
plt.title('婚育情况图')
plt.show()

在这里插入图片描述

1.5 用户的学历和职业
eduction_df = df.groupby("eduction").user_id.count().reset_index()
eduction_df

在这里插入图片描述

# 绘制条形图
eduction_df.plot.bar(figsize=(10,5),x="eduction",y="user_id",title="用户学历分布",rot=0)

在这里插入图片描述

job_df = df.groupby("job").user_id.count().reset_index()
# 绘制条形图
job_df.plot.bar(figsize=(10,5),x="job",y="user_id",title="用户职业分布",rot=0)

在这里插入图片描述

从数据来看,消费者最多的是白领和互联网从业人员,学历普遍在本科及以上

消费的典型用户:

    男性,年龄在30岁左右。他在一线城市居住,拥有本科学历,并且在一家互联网公司任职。收入比较高,他应该比较追求生活品质,注重家庭观念。但是一线城市节奏太快,生活压力也大,他可能缺少时间和精力来关注家庭生活。

2、用户的购买行为属性

  • 购买时间情况:按星期,以及按时间点统计
  • 2.1 购买时间情况分析
# 导入订单数据
order_df = pd.read_excel("order_data.xlsx")
order_df.head()

在这里插入图片描述

# 把订单日期转换为时间格式
order_df["time"]=pd.to_datetime(order_df["time"])
order_df.time.head()

在这里插入图片描述

# 提取时间点
order_df["time_hour"]=order_df["time"].dt.hour
order_df[["time_hour","time"]].head()

在这里插入图片描述

# 为了能按星期统计情况,需要把时间转换成星期几,默认周一是从0计数
order_df["time_week"]=order_df["time"].dt.dayofweek+1
order_df.time_week.head()

在这里插入图片描述

# 统计星期购物的情况
week_order_df = order_df.groupby("time_week").user_id.count().reset_index()
week_order_df.head()

在这里插入图片描述

# 绘制折线图,指定x轴的值,以及y轴的范围
week_order_df.plot(figsize=(10,5),x="time_week",ylim=[30000,42000])

在这里插入图片描述

# 统计时间点购物情况
hour_order_df = order_df.groupby("time_hour").user_id.count().reset_index()
hour_order_df.head()

在这里插入图片描述

# 绘制折线图,指定x轴的值,以及y轴的范围,并且指定x轴的刻度为 0-24 时间范围
hour_order_df.plot(figsize=(10,5),x="time_hour",ylim=[0,26000],xticks=range(0,24))

在这里插入图片描述
从整周的数据上来看,绝大部分订单都是在周三、周四来完成的,而周六、日的订单量最少。

从单日的每小时订单量来说,晚上21-22点是用户大量下单的时间。

3、分析结论

用户的特征:

    多数是来自一线城市的男性,年龄在30岁左右。学历水平较高,从事互联网等高收入行业。他们喜欢在周二到周五的晚上10点左右下单。他们喜欢追求生活品质,关心家庭,但是因为生活节奏和工作压力又没有时间在家庭生活上付出很多时间和精力。
对于促销活动的建议:

  • 文案:采取无性别风格的文案,突出产品对于家庭生活品质的提升,突出产品口碑
  • 时间:活动应该选择在周二到周五的晚上8点进行推送
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值