python编程从数据分析到数据科学_Python编程&数据科学入门——餐馆小费数据分析...

本文将使用Python来分析哪些因素是影响餐馆小费的关键因素。

数据导入

导入将要分析的tips数据。用pandas.read_csv()读取数据,并用pandas.head()查看数据的开头5行。可以看到数据有7列,分别是账单总额 (total_bill),所付小费 (tip),性别 (sex),是否吸烟 (smoker),星期几 (day),晚餐还是午餐 (time)和用餐人数 (size)。

import pandas as pd

tips = pd.read_csv('tips.csv')

tips.head()

f6dab70a3099

影响餐馆小费的因素

首先,计算小费的比例,并在在数据中添加小费比例 (tip_pct) 这一列。

tips['tip_pct'] = tips['tip'] / tips['total_bill']

tips.head()

f6dab70a3099

性别对小费的影响

消费数据中分别包含了男性和女性的小费支出情况,我们可以使用Pandas中的groupby方法,将数据按照性别拆分成男性和女性两组。接着使用agg方法导入聚合函数,分别计算男性和女性的小费比例的均值,最大值,最小值和标准差。均值数据显示,男性和女性支付的小费比例相似;标准差数据显示与女性相比较,男性支付的小费比例波动性较大。总体来看,性别不是影响小费的关键因素。

tips.groupby('sex')['tip_pct'].agg(['mean', 'max', 'min', 'std'])

f6dab70a3099

吸烟对小费的影响

我们继续使用groupby的方法,将数据按照“性别”和“是否吸烟”分组,分别计算小费比例的均值,最大值,最小值和标准差。从消费比例均值的计算结果来看,女性吸烟者给的小费比例最高,平均达到18.22%。另外,我们还发现一个有趣的现象:不论是男性还是女性,小费比例最大值和最小值都发生在吸烟者的群体。

tips.groupby(['sex', 'smoker'])['tip_pct'].agg(['mean', 'max', 'min', 'std'])

f6dab70a3099

就餐时间对小费的影响

将数据按照“性别”和“晚餐还是午餐”分组,分别计算小费比例的均值,最大值,最小值和标准差。可以发现,女性和男性小费比例的最大值均出现在晚餐,分别是41.67%和71.03%。均值数据显示,人们在晚餐和午餐时支付的小费比例相似,就餐时间不是影响小费的关键因素。

tips.groupby(['sex', 'time'])['tip_pct'].agg(['mean', 'max', 'min', 'std'])

f6dab70a3099

周末是否小费更多?

使用DataFrame的.value_counts()方法,可以看到周末是餐馆生意最好的时间段,餐馆在周六和周日分别接待了87桌和76桌顾客。

tips['day'].value_counts()

Sat 87

Sun 76

Thur 62

Fri 19

Name: day, dtype: int64

那在周末,是不是顾客给的小费也最多呢?我们用.isin()方法增加一个标量weekend表示是不是周末。

tips['weekend'] = tips['day'].isin(['Sat','Sun'])

tips.head()

f6dab70a3099

将数据按照“性别”和“是不是周末”分组,分别计算小费比例的均值,最大值,最小值和标准差。均值数据显示,人们在周末和非周末时支付的小费比例相似,周末不是影响小费的关键因素。综合前面的数据,发现女性和男性小费比例的最大值有一个共同的特征:周末+晚餐+吸烟。建议餐馆服务员可以留意这类人群,说不定会获得意外的惊喜。

tips.groupby(['sex', 'weekend'])['tip_pct'].agg(['mean', 'max', 'min', 'std'])

f6dab70a3099

平均小费百分比最高的是星期几?

按照“星期几”将数据分组,计算小费百分比的均值。运用.idmax()找到均值最大值的索引值,可以看到星期五的平均百分比最高。周末的到来,提高了人们支付小费的比例。

tip_mean = tips.groupby('day')['tip_pct'].agg(['mean'])

tip_mean['mean'].idxmax()

'Fri'

用餐人数对小费的影响

将数据按照“性别”和“用餐人数”分组,计算小费比例均值和每组人数的桌数。均值显示,不论男性还是女性,一个人就餐时,支付的小费比例最大。但这类客人很少,大部分客人都是两个人就餐,而且两个人就餐的时给出的小费要高于更多人一起就餐的。说明人们在人少时,表现的更为慷慨。

tips.groupby(['sex', 'size'])['tip_pct'].agg(['mean', 'count'])

f6dab70a3099

总结:

通过数据分析,发现餐馆小费受多种因素共同影响,关键的因素组合是:

周末 + 晚餐 + 吸烟

另外,一位到两位就餐的顾客,倾向于支付更多的小费。

虽然拿到的餐馆小费数据比较简单,例如人为的把男性和女性分开就餐。但通过实际运用,我们可以体会到了Python编程在数据分析上的强大,对于商业运营、市场营销等工作具有很好的指导和优化作用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值