用户偏好分析 TGI
1.1 用户偏好分析介绍
要分析的目标,在目标群体中的均值 和 全部群体里的均值进行比较, 差的越多说明 目标群体偏好越明显
TGI(Target Group Index,目标群体指数)用于反映目标群体在特定研究范围内强势或者弱势的程度
案例的需求, 高利润的产品投放市场, 找到合适的城市进行投放, 统计不同城市高客单价用户占比的TGI ,找到TGI比较大的城市, 还需要考虑总用户数量不要过少
1.2 代码
import pandas as pd
df = pd.read_excel('C:/Develop/顺义48/day01/02_代码/data/PreferenceAnalysis.xlsx')
df.head()
df.info()
df.describe()
用户打标 判断每个用户是否属于高客单价的人群
df['用户ID'].nunique() # 统计不重复的用户ID数量
# 计算每个用户平均消费金额
user_df = df.groupby(['用户ID'],as_index=False)['实付金额'].mean()
user_df.columns = ['用户ID','平均支付金额']
#%%
def if_high(x):
if x>50:
return '高客单价'
else:
return '低客单价'
user_df['用户类别'] = user_df['平均支付金额'].apply(if_high)
user_df
按城市统计, 高客单价人群 低客单价人群的数量
# 针对消费流水表, 去重, 用户ID 省份 城市 进行去重, 去重之后的数据,在与前面计算出来的用户标签进行关联
df_dup = df.drop_duplicates(subset=['用户ID','省份','城市'])
df_merge = pd.merge(user_df,df_dup,on='用户ID',how='left')
df_merge=df_merge[['用户ID', '平均支付金额', '用户类别','省份', '城市']]
df_merge.head()
#%%
df_result = df_merge.pivot_table(index=['省份','城市'],columns='用户类别',values='用户ID',aggfunc='count')
df_result.reset_index(inplace=True)
发现数据中有缺失值, 对缺失值进行处理
df_result.info()
#%%
# 分省份,城市 统计高客单价,低客单价用户数量的时候, 发现数据中有缺失值, 缺失的原因是某些城市没有这一类型的用户, 此时可以使用0来进行填充
df_result.fillna(0,inplace=True)
df_result.info()
#%%
df_result[df_result['低客单价']==0]
计算用户总数和高客单价占比
df_result['用户总数'] = df_result['低客单价']+df_result['高客单价']
df_result['高客单价占比'] = df_result['高客单价']/df_result['用户总数']
计算TGI target Group index 目标群体指数
df_result.info()
#%%
df_result['高客单价'].sum()/df_result['用户总数'].sum()
#%%
df_result['整体高客单价占比'] = df_result['高客单价'].sum()/df_result['用户总数'].sum()
#%%
df_result['TGI'] = df_result['高客单价占比']/df_result['整体高客单价占比'] *100
过滤掉用户数量太少的城市, 给出结论
user_count_mean = df_result['用户总数'].mean()
df_result[df_result['用户总数']>user_count_mean].sort_values(by='TGI',ascending=False)
同期群分析
使用场景
- 电商场景:比较不同月份客群的留存情况, 需要比较的是过了一个月(+1月)留存率,过了两个月(+2月)留存率…
- 金融信贷的场景:比较不同月份客群的违约情况, 需要比较的是过了一个月(+1月)违约率,过了两个月(+2月)违约率…
- 不能直接使用当前月份的数据直接做对比
使用同期群分析的时候, 周期可以调整, 指标可以换,可以把每一月份的数据按照其它维度进行拆解
- 比较客群留存情况把渠道考虑进来
案例: 计算了用户留存情况
- 每个月新增的用户, 当前有购买的用户ID - 之前月份也出现过的用户ID
- 留存使用复购来表示
评论文本分析
基本数据的处理
- 从评星中获取好评中评差评分类
- 从评价的时间中, 截取年月的数据
- 评论文本内容, 进行分词, 统计不同单词出现的次数(计算词频)
- 中文的评论, 分词是需要处理的部分, 可以使用 jieba这个库对中文进行分词
- 英文 词形还原过程 given → give been → be 可以使用NLTK库
- 无论中文/英文都要处理的 去停用词 stopwords 没有意义的连词,代词,介词
- 英文 of the
- 中文 的地 得 …
- 可以从网上下载停用词表
- 统计词频的时候不统计停用词
从评论的数量, 判断出销量,按照时间的维度, 绘制折线图, 通过评论数量的波动, 发现销量的变化规律
从评论的词频统计中, 可以知道
- 如果是差评, 大家都在吐槽什么, 发现产品的缺点
- 如果是好评, 大家都在夸什么