一、数据来源
本节选用的是Python的第三方库seaborn自带的数据集,该小费数据集为餐饮行业收集的数据,其中total_bill为消费总金额、tip为小费金额、sex为顾客性别、smoker为顾客是否吸烟、day为消费的星期、time为聚餐的时间段、size为聚餐人数。
import numpy as npfrom pandas import Series,DataFrameimport pandas as pdimport seaborn as sns #导入seaborn库tips=sns.load_dataset('tips') #seaborn库自带的数据集tips.head()
![8c5fd7ca4a0a2bc0e92fa8b062f4fbbc.png](https://i-blog.csdnimg.cn/blog_migrate/e90c2b674ff173518e160ad8adc7208e.jpeg)
二、问题探索
一、小费金额与消费总金额是否存在相关性?
二、性别、是否吸烟、星期几、聚餐人数和小费金额是否有一定的关联?
三、小费金额占小费总金额的百分比是否服从正态分布?
三、数据清洗
tips.shape #数据集的维度
(244,7)
共有244条数据,7列。
tips.describe() #描述统计
![a58a9501b465b4551b3f5f1146470df2.png](https://i-blog.csdnimg.cn/blog_migrate/0afe7c57a6d58cbba54e26e9e84b900e.jpeg)
描述统计结果如上所示。
tips.info() #查看缺失值信息
![240fe7c84c8d59bebeeca89a4c310c78.png](https://i-blog.csdnimg.cn/blog_migrate/a892619ab3eff31d53e2e996bd37d1ae.jpeg)
此例无缺失值。
四、数据探索
tips.plot(kind='scatter',x='total_bill',y='tip') #绘制散点图
![2089f6449cf192f9749aac4cba3a51c1.png](https://i-blog.csdnimg.cn/blog_migrate/73f2ce96dbd93fdd794a81be4ddad648.jpeg)
由图可看出,小费金额与消费总金额存在正相关性。
import numpy as npfrom pandas import Series,DataFrameimport pandas as pdimport seaborn as sns #导入seaborn库tips=sns.load_dataset('tips')#seaborn库自带的数据集tips.head()
3.0896178343949052
female_tip = tips[tips['sex'] == 'Female']['tip'].mean() #女性平均消费金额female_tip
2.833448275862069
s = Series([male_tip,female_tip],index=['male','female'])s
male 3.089618
female 2.833448
dtype: float64
s.plot(kind='bar') #男女平均小费柱状图
![25c4b01bd7dd02962669e1029617af8f.png](https://i-blog.csdnimg.cn/blog_migrate/2bc44b7d19fc783f5e7da95c9c272015.jpeg)
由图可看出,女性小费金额小于男性小费金额。
tips['day'].unique() #日期的唯一值
[Sun, Sat, Thur, Fri]
Categories (4, object): [Sun, Sat, Thur, Fri]
sun_tip = tips[tips['day'] == 'Sun']['tip'].mean()sat_tip = tips[tips['day'] == 'Sat']['tip'].mean()thur_tip = tips[tips['day'] == 'Thur']['tip'].mean()fri_tip = tips[tips['day'] == 'Fri']['tip'].mean()#各个日期的平均小费值s = Series([thur_tip,fri_tip,sat_tip,sun_tip],index=['Thur','Fri','Sat','Sun'])s
![283fa87c77da719eb29334d4700e5659.png](https://i-blog.csdnimg.cn/blog_migrate/703c80fef654ab867706b5da0e2aaa13.jpeg)
s.plot(kind='bar') #日期平均小费柱状图
![80eb753c06f8b71be0dbecd4556d3016.png](https://i-blog.csdnimg.cn/blog_migrate/4b01f709986b7fac1d74da406e9f84f8.jpeg)
由图可看出,周六、周日的小费比周四、周五的小费高。
tips['percent_tip'] = tips['tip']/(tips['total_bill']+tips['tip'])tips.head(10) #小费所占百分比
![ab4a6199637aa6241ff46f5253233cb7.png](https://i-blog.csdnimg.cn/blog_migrate/f5ac76a89f9a856bd72aae5952fba9a2.jpeg)
tips['percent_tip'].hist(bins=50)#小费百分比直方图
![c337d1d6b093e1b314d36c9244692a3b.png](https://i-blog.csdnimg.cn/blog_migrate/d9a9ec1eb2a688dc8a690816244ccb9b.jpeg)
由图可看出,小费金额占小费总金额的百分比基本服从正态分布。