一、數據來源
本節選用的是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()
二、問題探索
一、小費金額與消費總金額是否存在相關性?
二、性別、是否吸煙、星期幾、聚餐人數和小費金額是否有一定的關聯?
三、小費金額占小費總金額的百分比是否服從正態分布?
三、數據清洗
tips.shape #數據集的維度
(244,7)
共有244條數據,7列。
tips.describe() #描述統計
描述統計結果如上所示。
tips.info() #查看缺失值信息
此例無缺失值。
四、數據探索
tips.plot(kind='scatter',x='total_bill',y='tip') #繪制散點圖
由圖可看出,小費金額與消費總金額存在正相關性。
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') #男女平均小費柱狀圖
由圖可看出,女性小費金額小于男性小費金額。
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
s.plot(kind='bar') #日期平均小費柱狀圖
由圖可看出,周六、周日的小費比周四、周五的小費高。
tips['percent_tip'] = tips['tip']/(tips['total_bill']+tips['tip'])
tips.head(10) #小費所占百分比
tips['percent_tip'].hist(bins=50)#小費百分比直方圖
由圖可看出,小費金額占小費總金額的百分比基本服從正態分布。