python (餐厅小费分析)


餐厅统计的用餐信息如下:

餐费、小费、性别、吸烟习惯、用餐时段、用餐人数 

目的:分析小费比例与其他因素的关系,出手最阔绰的人群长什么样?

##思考:

根据到手的数据,简单分析小费比例可能与哪些因素产生关系?

性别?吸烟习惯?用餐时段?用餐人数?

1、导入数据

先导入数据,观察数据是什么样子的

import pandas as pd 
%matplotlib inline 
%config InlineBackend.figure_format="retina" tips=pd.read_csv("/Users/dengsudden/Documents/python_course/tips.csv",sep=";")
 tips.head()

 

 

 各个字段意义如下:

total_bill: 总消费

tip:小费

sex:性别

smoker:吸烟情况

day:周一至周日的一天

time:一天三餐某一餐

size:用餐人数

可以用散点图感受一下total_bill与tip之间分布关系:

tipa.plot(kind = 'scatter',x = 'total_bill',y ='tip', color="blue",label="bill_tip",figsize=(10,6))

 

 

 横轴表示消费额,纵轴表示小费,可以大致看到一个趋势——小费随消费额的增加而增加。

(不过后面的分析我们会发现,小费比例随消费额的增加而减少)

 

2、分析思路

(1)首先计算出 小费比例

(2)提出假设:小费比例与消费额成正比,与用餐人数成正比,有吸烟习惯的人小费比例更高,男性比女性小费比例高,晚餐比午餐小费比例高,周末小费比例更高

(3)验证假设

 

 

3、数据清洗

 

首先来看看离群值是否是异常值,思路如下:

1. 画出整体数据小费比例的箱线图,可以看到离群值

2. 根据箱线图中离群值范围,找出离群值具体数据情况,判别是否为异常值

3. 使用df.drop([index1,index2,])去除数据中的异常值

# 计算小费比例
tips['pct'] = tips.tip/tips.total_bill*100
tips.head()

#整体数据的小费比例箱线图
tips.pct.plot(kind = 'box',label= 'tips pct%',figsize=(10,6))

 

 从整体数据来看,小费比例最小在3%左右,最大在70%左右,中位数在15%左右,均值为16%,

这是一个很大的范围,我们需要深入到各个纬度去研究小费比例的关联因素。

小费比例高于30%被认为是离群值,下面我看来看看这几个离群值是否是异常值。

tips[tips.pct>30]

 

 可以看到,小费比例较高的这几个离群值,小费总额都不到10美元,

而小费比例就超出一半,可以认为这是异常值,

因此我们剔除掉这些异常值。然后再开始数据挖掘。

#去除异常值
tipa = tips.drop([67,172,178])
tipa[tipa.tip>30]

4、数据分析

小费比例与性别、日期、吸烟习惯、用餐时段的关系

#按男女分组,绘制小费比例箱线图
tipa[['pct','sex']].boxplot(grid = False,by = 'sex',figsize =(10,6))

#按星期几分组,绘制小费比例箱线图
tipa[['pct','day']].boxplot(grid = False,by = 'day',figsize =(10,6))

# 是否吸烟与小费比例关系
tipa[["pct","smoker"]].boxplot(grid=False,by="smoker",figsize=(10,6))

# 按性别分组,寻找吸烟与否与小费比例关系
tipsm=tipa[tipa.sex=="Male"]
tipsf=tipa[tipa.sex=="Female"]
tipsm[["pct","smoker"]].boxplot(grid=False,by="smoker",figsize=(10,6)) tipsf[["pct","smoker"]].boxplot(grid=False,by="smoker",figsize=(10,6))

#小费比例与用餐时段的关系
tipa[["pct","time"]].boxplot(grid=False,by="time",figsize=(10,6))

 

 按性别分组来看,男女性的中位数接近,男性的小费比例分布非常均匀,

女性的小费比例下四分位数更加靠上,说明女性更容易给出更高的小费。

 

按日期分组来看,周四到周天的小费比例中位数区别不大,节假日的周六周天人们给小费更加随意一点,
特别是周六,小费比例范围跨度达到了25%,原因可能在于周末人们拥有更加轻松愉快的心情(说不定周末相亲的人也更多,小费比例高呢)。
而这两天也更容易出现高到离谱的小费比例,我猜猜是不是周末喝高了,小手一抖,小费出手。
 

 

 按吸烟习惯来看,吸烟的人出手更加随意,小费比例范围更广,而不吸烟的人出手更加谨慎。

我想其中的原因可能在于吸烟者觉得自己带给了别人更多不方便,当然,也可能和吸烟者的经济状况、付费习惯有关。

 ### 将数据按性别分组,男性中的不吸烟群体的小费比例比吸烟群体要高,

其中的原因可能是不吸烟的男性可能拥有更高的教育水平和经济能力。

女性中的吸烟群体的小费比例明显高于不吸烟群体,中位数超过女性不吸烟群体3%左右,分布范围也更广。

从用餐时段来看,午餐的小费比例范围较窄,晚餐时段的小费比例随意性较大,

这可能是由于晚餐时段用餐时长更长、餐费更高、很可能用了酒类饮料,使得小费比例较高。

 

。。。接下来看看小费与用餐人数之间关系

#小费比例与用餐人数的关系
tipa.groupby("size").mean()

 

 可以看到,小费比例随用餐人数的增加而降低。

 

可以得出结论:周六单独来餐厅吃晚餐的吸烟男性

 



 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM