Pandas——用户偏好分析

用户偏好分析 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

      • 中文 的地 得 ...

      • 可以从网上下载停用词表

      • 统计词频的时候不统计停用词

从评论的数量, 判断出销量,按照时间的维度, 绘制折线图, 通过评论数量的波动, 发现销量的变化规律

从评论的词频统计中, 可以知道

  • 如果是差评, 大家都在吐槽什么, 发现产品的缺点

  • 如果是好评, 大家都在夸什么

  • 13
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值