目录
总结
前言
用户画像分析是一种通过收集和分析用户的个人信息、行为数据、兴趣偏好等,来描绘和描述用户的特征和特点的技术方法。用户画像可以帮助企业更好地了解自己的目标用户群体,从而更准确地针对用户需求进行产品设计、服务定位、营销推广等工作。
用户画像分析可以从多个维度进行,如以下几个方面:
-
人口统计信息:通过用户的年龄、性别、教育程度、职业等基本信息,来了解用户的社会背景和一些基本特征。
-
行为特征:通过用户在平台或应用上的行为数据,如浏览记录、购买记录、搜索关键词等,来了解用户的消费习惯、偏好和需求。
-
兴趣偏好:通过用户在社交网络的关注、点赞、评论等行为,或在平台上的兴趣标签、兴趣分类等信息,来了解用户的兴趣爱好和爱好的程度。
-
社交关系:通过用户在社交网络上的好友关系、互动频率等信息,来了解用户的社交圈子和人际关系。
-
地理位置:通过用户的IP地址、GPS定位等信息,来了解用户所在的地理位置,从而进行地域差异化的产品和服务定位。
一、读取数据
按块读取
path = r'C:\Users\B\Desktop\action.csv'
# chunksize 按块读取
data = pd.read_csv(path,chunksize=100000)
chunks = []
for chunk in data:
chunk = pd.DataFrame(chunk)
chunks.append(chunk)
action = pd.concat(chunks)
action = action[['user_id','sku_id','type','time','cate']]
action.head()
二、数据清洗
action.info()
# 空值
action.isnull().sum()
# 重复值
action.drop_duplicates(inplace=True)
# 异常值
action.describe()
# 处理日期字段
action['time'] = pd.to_datetime(action['time'])
action['user_id'] = action['user_id'].astype('int64')
action.info()
三、数据分析
1.筛选高潜用户
代码如下(示例):
action['type'].unique()
action['type'].value_counts()
# 筛选出有购买行为的用户数据
action_type4 = action[action['type']==4]
action_type4
# 商品品类为4的数据
action_type4 = action_type4[action_type4['cate']==4]
action_type4
# 计算每个用户的最后购买时间
ac_lastbuytime = action_type4.groupby(by=['user_id'])['time'].apply(lambda x:x.max())
ac_lastbuytime
# 最早的交互时间
ac_all_buy = pd.merge(ac_lastbuytime,action,on='user_id')
ac_all_buy
df = pd.merge(ac_lastbuytime,ac_firsttime ,on='user_id')
# 修改列名
df.columns = ['buytime','ac_time']
df.head()
df['days'] = (pd.to_datetime(df['buytime']) -pd.to_datetime(df['ac_time'])).dt.days
df
# 获取高潜用户
high_pot = df[df['days']>1]
high_pot
2.数据合并
代码如下(示例):
# user表
user = pd.read_csv(r'C:\Users\B\Desktop\user.csv')
user.head()
user.info()
user.dropna(inplace=True)
user.drop_duplicates(inplace=True)
user_high = pd.merge(user,high_pot,on='user_id')
user_high.head()
user_high.to_csv('./user_high.csv')
四、分析可视化
1.
from pyecharts.charts import *
import pyecharts.options as opts
# 用户等级
user_lv_count = user_high['user_lv_cd'].value_counts()
# user_lv_count
num = user_lv_count.values.tolist()
lev = user_lv_count.index.tolist()
data_pair1 = [("等级"+str(i),j) for i ,j in zip(lev,num)]
data_pair1
pie = (
Pie()
.add(series_name='占比',data_pair=data_pair1)
# 标签
.set_global_opts(tooltip_opts=opts.TooltipOpts(is_show=True,formatter='{b}:{d}%'),
title_opts={'text':'高潜用户各等级占比'})
)
pie.render_notebook()
# 结论:等级5最多,占比63%,其次是等级4,占比28.96%.
2.
# 用户年龄
user_age_count = user_high.groupby('age')['user_id'].count().sort_values(ascending=False) # 降序排序
user_age_count
x_data = user_age_count.index.tolist()
y_data = user_age_count.values.tolist()
bar = (
Bar()
.add_xaxis(x_data)
.add_yaxis('柱形图',y_data)
)
bar.render_notebook()
3.
# 用户性别
gender = user_high.groupby('sex')['user_id'].count().reset_index()
gender
pair = [(i,j) for i ,j in zip(gender['sex'],gender['user_id'])]
pie2 = (
Pie()
.add('',pair,radius=['45%','65%'],label_opts=opts.LabelOpts(formatter="{b}:{d}%"))
)
pie2.render_notebook()
总结
通过对用户的画像分析,企业可以更好地了解用户的需求和特点,从而进行有针对性的产品设计、市场营销和服务提供。同时,用户画像分析也可以帮助企业找到新的市场机会、发现用户潜在需求,并进行产品创新和业务拓展。