df1 = pd.read_excel('上海餐饮数据.xlsx')
(2) 计算出三个维度的指标得分
1) 口味指标计算方法 → 口味评分字段,按照餐饮类别分组算均值上海餐饮数据分析,再做标准化处理
2)人均消费指标计算方法 → 人均消费字段,按照餐饮类别分组算均值,再做标准化处理
3)性价比指标计算方法 → 性价比 = (口味 + 环境 + 服务)/人均消费,按照餐饮类别分组算均值,再做标准化处理
data1 = df1[['类别','口味','环境','服务','人均消费']]
筛选数据,清除空值、为0的数据
data1.dropna(inplace=True)
data1 = data1[(data1['口味']>0)&(data1['环境']>0)&(data1['服务']>0)&(data1['人均消费']>0)]
构造性价比指数
data1['性价比'] = (data1['口味']+data1['环境']+data1['服务'])/data1['人均消费']
查看异常值,通过箱形图
fig, axes = plt.subplots(1,3,figsize=(10,4))
data1.boxplot(column=['口味'],ax=axes[0])
data1.boxplot(column=['人均消费'],ax = axes[1])
data1.boxplot(column=['性价比'],ax=axes[2])
去除上下四分位数(异常值处理)剩下每个指标的非异常值
注意,这里先分别计算三个指标,再合并数据(merge)作图,目的是指标之间的噪音数据不相互影响
def f1(data,col):
q1 = data[col].quantile(q = 0.25)
q3 = data[col].quantile(q = 0.75)
iqr = q3 - q1
t1 = q1 - 3 * iqr
t2 = q3 + 3 * iqr
return data.loc[((data[col]>t1)&(data[col]
按照餐饮类别分组算均值,算出均值后,对所有类的均值做标准化处理再做标准化处理
def f2(data,col):
col_name = col + '_norm'
data_gp = data.groupby('类别').mean()
data_gp[col_name] = (data_gp[col] - data_gp[col].min())/(data_gp[col].max() - data_gp[col].min())
return data_gp
data_kw_score = f2(data_kw,'口味')
data_rj_score = f2(data_rj,'人均消费')
data_xjb_score = f2(data_xjb,'性价比')
合并数据
data_final_q1 = pd.merge(data_kw_score,data_rj_score,left_index=True,right_index=True)
data_final_q1 = pd.merge(data_final_q1,data_xjb_score,left_index=True,right_index=True)
(3)制作散点图,x轴为“人均消费”,y轴为“性价比得分”,点的大小为“口味得分
结论:人均消费越高,性价比越低;人均消费越低,性价比越高;
口味好的食物一般人均消费和性价比都属于中档或者中档偏上的位置。
plt.scatter(x = data_final_q1['人均消费'], y = data_final_q1['性价比'], s=data_final_q1['口味_norm']*500,alpha=0.4)
试看结束,如继续查看请付费↓↓↓↓
打赏0.5元才能查看本内容,立即打赏
来源【首席数据官】,更多内容/合作请关注「辉声辉语」公众号,送10G营销资料!
版权声明:本文内容来源互联网整理,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 jkhui22@126.com举报,一经查实,本站将立刻删除。