一、数据来源
本节选用的是Python的第三方库seaborn自带的数据集,该小费数据集为餐饮行业收集的数据,其中total_bill为消费总金额、tip为小费金额、sex为顾客性别、smoker为顾客是否吸烟、day为消费的星期、time为聚餐的时间段、size为聚餐人数。
- import numpy as np
- from pandas import Series,DataFrame
- import pandas as pd
- import seaborn as sns #导入seaborn库
- tips=sns.load_dataset('tips') #seaborn库自带的数据集
- tips.head()
![Python数据分析实战,小费数据集应用](https://s4.51cto.com/oss/202008/16/7b127c09ceb905505a05e9e14065d8a3.jpeg)
二、问题探索
- 小费金额与消费总金额是否存在相关性?
- 性别、是否吸烟、星期几、聚餐人数和小费金额是否有一定的关联?
- 小费金额占小费总金额的百分比是否服从正态分布?
三、数据清洗
- tips.shape #数据集的维度
(244,7)
共有244条数据,7列。
- tips.describe() #描述统计
![Python数据分析实战,小费数据集应用](https://s5.51cto.com/oss/202008/16/665959dd781b239cbc4a42cb534f3719.jpeg)
描述统计结果如上所示。
- tips.info() #查看缺失值信息
![Python数据分析实战,小费数据集应用](https://s2.51cto.com/oss/202008/16/4a26ad26e49572cd8a4c309f97a26b18.jpeg)
此例无缺失值。
四、数据探索
- tips.plot(kind='scatter',x='total_bill',y='tip') #绘制散点图
![Python数据分析实战,小费数据集应用](https://s3.51cto.com/oss/202008/16/2e04730ef03f15f3631c8c3f4e5738a0.jpeg)
由图可看出,小费金额与消费总金额存在正相关性。
- import numpy as np
- from pandas import Series,DataFrame
- import pandas as pd
- import 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') #男女平均小费柱状图
![Python数据分析实战,小费数据集应用](https://s1.51cto.com/oss/202008/16/dbafbb61a209fe500e46f3afbc022c79.jpeg)
由图可看出,女性小费金额小于男性小费金额。
- 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
![Python数据分析实战,小费数据集应用](https://s3.51cto.com/oss/202008/16/da4271f040968a375596d624e55a52e8.jpeg)
- s.plot(kind='bar') #日期平均小费柱状图
![Python数据分析实战,小费数据集应用](https://s5.51cto.com/oss/202008/16/29a715d6052faa358f27ebf4b04940f5.jpeg)
由图可看出,周六、周日的小费比周四、周五的小费高。
- tips['percent_tip'] = tips['tip']/(tips['total_bill']+tips['tip'])
- tips.head(10) #小费所占百分比
![Python数据分析实战,小费数据集应用](https://s1.51cto.com/oss/202008/16/fb70beb58a21ccaef1f6eb9aeb2b3db4.jpeg)
- tips['percent_tip'].hist(bins=50)#小费百分比直方图
![Python数据分析实战,小费数据集应用](https://s1.51cto.com/oss/202008/16/07a57e2f046f2d69e46b90d38f4a5e2b.jpeg)
由图可看出,小费金额占小费总金额的百分比基本服从正态分布。