python版本3.5.2
数据集忘了哪里拿来的了
首先读一下数据,看看有哪些字段
import pandas as pd
import numpy as np
import matplotlib.pylab as plt
data = pd.read_csv('/Users/jinniu/Desktop/study/PriticeData/tips.csv')
data.head()
"""
total_bill tip sex smoker day time size
0 16.99 1.01 Female No Sun Dinner 2
1 10.34 1.66 Male No Sun Dinner 3
2 21.01 3.50 Male No Sun Dinner 3
3 23.68 3.31 Male No Sun Dinner 2
4 24.59 3.61 Female No Sun Dinner 4
"""
先看下相关性,找个软柿子捏捏
#相关性
corr = data.corr()
"""
total_bill tip size tips_pct
total_bill 1.000000 0.675734 0.598315 -0.338624
tip 0.675734 1.000000 0.489299 0.342370
size 0.598315 0.489299 1.000000 -0.142860
tips_pct -0.338624 0.342370 -0.142860 1.000000
"""
可以看出小费和小费金额是比较强的相关性,虽然小于0.8,但是相关程度也挺高的,所以,一场饭局如果消费越高,小费也就越高,但是注意到小费所占消费的百分比是中度的负相关,这个我们放到后面看看
先看看百分比的柱状图,貌似小费的百分比都集中在10%到20%之间
plt.plot(data['total_bill'],data['tip'],'o')
plt.show()
说起来一般出去吃饭局的大老板都抽烟,那么不知道抽烟的男女对小费有没有影响? 这里我们用透视来看看,因为我们要关注的是性别和吸烟情况,所以行索引我们用list传入
#性别和吸烟对小费的影响
man_tip = data.pivot_table(index=['sex','smoker'],aggfunc='mean')
"""
size tip tips_pct total_bill
sex smoker
Female No 2.592593 2.773519 0.156921 18.105185
Yes 2.242424 2.931515 0.182150 17.977879
Male No 2.711340 3.113402 0.160669 19.791237
Yes 2.500000 3.051167 0.152771 22.284500
"""
哦吼?!有意思!女性的消费会低于男性消费,果然是男的赚的多吗?另外,吸烟的女性出手都比较大方,而不吸烟的女性相对的就没那么大方,而男性则比较稳定,没有女性偏差那么大,但是男性刚好相反,不抽烟的小费给的多,抽烟的小费给的少。可是男性的小费比例是全面低于女性的,说明男性在购物消费方面不如女性出手大方
所以攻略点2:找抽烟的女性买单
接下来看看人数对我们的收益有没有影响
#人数对小费的影响
tip_size = data.pivot_table(index='size',aggfunc='mean')
"""
tip tips_pct total_bill
size
1 1.437500 0.217292 7.242500
2 2.582308 0.165719 16.448013
3 3.393158 0.152157 23.277632
4 4.135405 0.145949 28.613514
5 4.028000 0.141495 30.068000
6 5.225000 0.156229 34.830000
"""
除去一个人的情况,人数的多少根小费貌似没有多大关系,都浮动在0.15这个位置,真的是如此吗?画个散点图看看
#画个散点图
plt.plot(data['size'],data['tips_pct'],'o')
plt.show()
#看下tips_pce和人数的相关性
size_corr = data['size'].corr(data['tips_pct'])
#-0.14285960069312365
弱相关,人数越多可能小费百分比越少,这么低的相关性,可能真的是没什么关系了,看来人数的增加对我们的收益没有什么影响,都是在0.15左右
但是真的如此吗???? 别忘了我们统计的是百分比,百分比在这边是说明不了什么的,因为我们拿的是实实在在的钱!!!
我们要看的是小费和人数的关系!!!!
#看下人数和小费的关系
size_corr2 = data['size'].corr(data['tip'])
#0.48929877523035775
果然!!!0.48929877523035775
中等相关!所以可以看出人数越多消费越多,但是给的小费占比略微减少,即便如此,拿到的小费依然是呈增长的趋势
那么吃饭的时间对我们有影响吗?
tip_time = data.pivot_table(index=['day','time'],aggfunc='mean')
size tip tips_pct total_bill
day time
Fri Dinner 2.166667 2.940000 0.158916 19.663333
Lunch 2.000000 2.382857 0.188765 12.845714
Sat Dinner 2.517241 2.993103 0.153152 20.441379
Sun Dinner 2.842105 3.255132 0.166897 21.410000
Thur Dinner 2.000000 3.000000 0.159744 18.780000
Lunch 2.459016 2.767705 0.161301 17.664754
看得出来,不论是工作日还是休息日,只有晚饭才是收入最高的时候,虽然百分比少了,但是人家消费高啊