Pandas07
Pandas01
Pandas02
Pandas03
Pandas04
Pandas05
Pandas06
文章目录
- 1 用户偏好分析 TGI
- 1.1 TGI介绍
- 1.2 TGI案例代码
- 2 用户评论文本分析
- 2.1 用户评论文本分析简介
1 用户偏好分析 TGI
1.1 TGI介绍
TGI(Target Group Index,目标群体指数)用于反映目标群体在特定研究范围内强势或者弱势的程度。
我们可以结合TGI公式来理解:
TGI = 目标群体中具有某一特征的群体所占比例/总体中具有相同特征的群体所占比例 × 100
当前案例要解决的问题, 找到合适的5个城市做新产品的首发城市, 产品的特点高利润, 高品质, 低性价比
计算步骤:
① 高客单价 定义 什么算是高客单价
② TGI 高客单价 城市
计算每个城市高客单价用户的占比
计算总体的高客单价用户占比
③ 计算出 每个城市, 高客单价占比的TGI
④ TGI进行排名, 选出排名前5
需要注意的问题: 考虑到数据量(市场规模)
1.2 TGI案例代码
加载数据
import pandas as pd
df=pd.read_excel('C:/Develop/深圳42/data/PreferenceAnalysis.xlsx')
df.head()
#%%
df.info()
#%%
df.describe()
#%%
df['用户ID'].value_counts()
通过查看数据, 发现有的用户消费了多笔, 需要计算平均消费金额,来判断用户是否是高客单价习惯的用户
计算每个人的平均消费金额
users_df = df.groupby('用户ID', as_index=False)['实付金额'].mean()
users_df.columns = ['用户ID','平均支付金额']
#%%
# 根据平均消费金额给用户贴上标签(高客单价, 低客单价)
users_df['客单价类别'] = users_df['平均支付金额'].apply(lambda x:'高客单价' if x>50 else '低客单价')
users_df['客单价类别'].value_counts()
#%%
users_df
#%%
# 把计算好的数据, 跟城市的数据拼接到一起
df_dup = df.drop_duplicates(subset=['用户ID','省份','城市'])
df_dup
#%%
from pandas import DataFrame
df_merge:DataFrame = users_df.merge(df_dup,on='用户ID',how='left')[['用户ID','平均支付金额','客单价类别','省份','城市']]
统计每个城市高客单价, 低客单价的人数
# 透视表 margins参数 会做汇总, 把每一行的数据加到一起放在最右边(多一列), 每一列数据加到一起放到最下面(多一行)
result_df = df_merge.pivot_table(index = ['省份','城市'],columns = '客单价类别',values='用户ID',aggfunc='count',margins=True).reset_index()
计算每个城市高客单价的占比, 计算整体的高客单价占比 计算TGI
result_df['高客单价占比'] = result_df['高客单价']/result_df['All']
#%%
result_df.fillna(0,inplace=True)
#%%
result_df.iloc[result_df.shape[0]-1,result_df.shape[1]-1]
#%%
result_df['总高客单价占比'] = result_df.iloc[result_df.shape[0]-1,result_df.shape[1]-1]
#%%
result_df['TGI'] = result_df['高客单价占比']/result_df['总高客单价占比'] * 100
#%%
result_df.sort_values(by='TGI',ascending=False)
根据TGI排序, 找到TGI比较高的城市, 这里需要过滤掉数据量太少的城市
result_df[result_df['All']>result_df['All'].mean()].sort_values(by='TGI',ascending=False)
2 用户评论文本分析
2.1 用户评论文本分析简介
-
评论数量随时间波动的情况
-
评论的内容分析
- 词频统计 → 绘制词云图
-
词频统计
-
英文词频统计 分词(把一句话拆成一个一个单词, 是比较容易的) 难点 词形还原
- drive driven begin→began
- nltk
- 使用nltk做英文文本处理 ①分词 → ②词形还原 → ③ 去停用词(nltk库有现成的停用词表) → ④ 词频统计 → ⑤ 词云图展示
-
中文词频统计 分词是中文文本处理比较关键的环节
- jieba ①jieba分词 ②去停用词 → ③ 词频统计 → ④词云图
-
无论是中文词频统计还是英文的词频统计都要做的步骤 去停用词
- 对句子的意思影响不大的 连词, 介词, 代词之类的
- 英文 of the
- 中文 的 地 得
- 对句子的意思影响不大的 连词, 介词, 代词之类的
-
若有错误与不足请指出,关注DPT一起进步吧!!!