Pandas實例 - 小費數(shù)據(jù)集

環(huán)境:Win10 + Cmder + Python3.6.5

數(shù)據(jù)來源

? 小費數(shù)據(jù)來源于Python第三方庫seaborn自帶的數(shù)據(jù),加載數(shù)據(jù)集:

>>> import numpy as np
>>> from pandas import Series, DataFrame
>>> import pandas as pd
>>> import matplotlib.pyplot as plt
>>> import seaborn as sns
>>> tips = sns.load_dataset('tips')
>>> tips.head()
Out:
  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

? total_bill為總消費金額,tip為小費,sex為顧客性別,smoker為顧客是否抽煙,day列為消費的星期,time列為聚餐的時間段,size為聚餐人數(shù)。

數(shù)據(jù)清洗

? 查看是否有缺失值或者異常值,如下:

>>> tips.shape
Out: (244, 7)
>>> tips.describe()
Out: 
      total_bill         tip        size
count  244.000000  244.000000  244.000000
mean    19.785943    2.998279    2.569672
std      8.902412    1.383638    0.951100
min      3.070000    1.000000    1.000000
25%     13.347500    2.000000    2.000000
50%     17.795000    2.900000    2.000000
75%     24.127500    3.562500    3.000000
max     50.810000   10.000000    6.000000
>>> tips.info()
Out:
<bound method DataFrame.info of      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
5         25.29  4.71    Male     No   Sun  Dinner     4
6          8.77  2.00    Male     No   Sun  Dinner     2
7         26.88  3.12    Male     No   Sun  Dinner     4
8         15.04  1.96    Male     No   Sun  Dinner     2
9         14.78  3.23    Male     No   Sun  Dinner     2
10        10.27  1.71    Male     No   Sun  Dinner     2
...... # 省略

? 通過結(jié)果可以看出,共244條數(shù)據(jù)且暫時看不出是否存在缺失值。

數(shù)據(jù)探索

? 1. 消費金額與消費總金額關(guān)聯(lián)性

? 繪制散點圖如下:

>>>  plt.show(tips.plot(kind='scatter', x='total_bill', y='tip'))

? 可以看出,小費金額與消費總金額存在正相關(guān)性,即消費的金額越多,給的小費也就越多。

? 2. 顧客性別與小費金額的關(guān)聯(lián)性

? 繪制柱狀圖如下:

>>> male_tip = tips[tips['sex']=='Male']['tip'].mean()
>>> female_tip =  tips[tips['sex']=='Female']['tip'].mean()
>>> s = Series([male_tip, female_tip], index=['male', 'female'])
>>> plt.show(s.plot(kind='bar'))

? 可以看出,男性更傾向于給小費。

? 3. 日期平均小費
? 繪制柱狀圖如下:

>>>  thur_tip = tips[tips['day'] == 'Thur']['tip'].mean()
>>>  fri_tip = tips[tips['day'] == 'Fri']['tip'].mean()
>>>  sat_tip = tips[tips['day'] == 'Sat']['tip'].mean()
>>>  sun_tip = tips[tips['day'] == 'Sun']['tip'].mean()
>>>  Series([thur_tip, fri_tip, sat_tip, sun_tip], index=['Thur', 'Fri', 'Sat','Sun']).plot(kind='bar')
>>> plt.show()

? 可以看出,周六、周日的小費比周四、周五高。這與人們的生活習(xí)慣有關(guān)。

? 4. 顧客吸煙與否與小費的關(guān)聯(lián)性

? 繪制柱狀圖下:

>>>  plt.show(tips['smoker'].value_counts().plot(kind='barh'))

? 可以看出,不抽煙的人可能更傾向給小費,這與人們的性格,經(jīng)濟情況等都有關(guān)系。

? 5.聚餐人數(shù)與總消費金額的關(guān)系

? 繪制條形圖如下:

>>> plt.show(tips.plot(x='size', y='total_bill'))

? 可以看出,消費金額與聚餐人數(shù)呈正相關(guān)。

? 6.小費百分比

? 繪制小費百分比直方圖如下:

>>> plt.show(tips['percent_tip'].hist(bins=20, grid=False))

? 可以看出,基本上符合正太分布,但也有幾個異常點。再來看看密度圖(正態(tài)分布),如下:

>>> plt.show(tips['percent_tip'].plot(kind='kde'))

? 上述實例對小費數(shù)據(jù) 集做了簡單的數(shù)據(jù)分析和可視化,也指出了數(shù)據(jù)分析的一般流程,希望對你有所幫助。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容