项目07城市餐饮店铺选址分析

问题

【项目07】 城市餐饮店铺选址分析

1、从三个维度“口味”、“人均消费”、“性价比”对不同菜系进行比较,并筛选出可开店铺的餐饮类型
要求:
① 计算出三个维度的指标得分
② 评价方法:
口味 → 得分越高越好
性价比 → 得分越高越好
人均消费 → 价格适中即可
③ 制作散点图,x轴为“人均消费”,y轴为“性价比得分”,点的大小为“口味得分”
绘制柱状图,分别显示“口味得分”、“性价比得分”

  • 建议用bokeh做图
    提示:
    ① 数据清洗,清除空值、为0的数据
    ② 口味指标计算方法 → 口味评分字段,按照餐饮类别分组算均值,再做标准化处理
    ③ 人均消费指标计算方法 → 人均消费字段,按照餐饮类别分组算均值,再做标准化处理
    ④ 性价比指标计算方法 → 性价比 = (口味 + 环境 + 服务)/人均消费,按照餐饮类别分组算均值,再做标准化处理
    ⑤ 数据计算之前,检查一下数据分布,去除异常值(以外限为标准)
  • 这里排除了高端奢侈餐饮的数据干扰
    ⑥ 注意,这里先分别计算三个指标,再合并数据(merge)作图,目的是指标之间的噪音数据不相互影响

答案

1

# -*- coding: utf-8 -*-
"""
Created on Tue Jul 23 11:03:15 2019

@author: HASEE
"""

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

import warnings
warnings.filterwarnings('ignore')

from bokeh.plotting import figure,show,output_file
from bokeh.models import ColumnDataSource

'''
(1) 加载数据
'''
import os
os.chdir(r'E:\软件自学\数据分析--网易微专业\【非常重要】Python数据分析师微专业_项目资料\项目07城市餐饮店铺选址分析')
df1 = pd.read_excel('上海餐饮数据.xlsx',sheetname=0)


'''
(2) 筛选数据,只留['类别','口味','环境','服务','人均消费'],并删除null和0,得到data1
'''
data1=df1[['类别','口味','环境','服务','人均消费']]
data1.dropna(inplace=True)

#发现数据的特点,人均消费为0的数据包含了前三个字段 口味 环境 服务 =0的所有情况 
#所有只用bool索引令‘人均消费’>0即可

data1=data1[(data1['人均消费']>0)]


'''
(3) 给data1添加字段‘性价比’
''' 
data1['性价比']=(data1['口味']+data1['环境']+data1['服务'])/data1['人均消费']



'''
(4) 创建箱形图函数box 用于观察'口味','人均消费','性价比'三个字段各自的异常值
'''
def box():
        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])
box()


'''
(5) 创建清洗函数clear 用于清洗'口味','人均消费','性价比'三个字段各自的异常值(大于外限的数据视为异常值)
注意:三个字段的异常值不是统一的,即口味的异常数据,性价比不一定异常,所以三列要分开清洗
'''
def clear(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[(data[col]>t1) & (data[col]<t2)][['类别',col]])

data_taste = clear(data1,'口味')
data_expend = clear(data1,'人均消费')
data_ratio = clear(data1,
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值