lesson1-繪制直方圖-乘客數據

(一) 繪制直方圖

import numpy from pandas import read_csv import matplotlib import matplotlib.pyplot as pet

#設置字體 font={'family':'SimHei'} matplotlib.rc('font',**font)

#讀取文件# data = read_csv('lesson1/AirPassengers.csv',encoding='UTF-8')
#查看數據類型 data.dtypes

#基本統計 data.NumPassengers.mean() #280.29861111111109 data.NumPassengers.var() #14391.917200854699 data.NumPassengers.std() #119.96631694294319 data.NumPassengers.describe()

#直方圖 plt.hist(data.NumPassengers,20)

觀察:
講真,這個直方圖看的很困惑,并不覺得能解釋什么。因為原始數據中其實有三個變量:月份,不知道是什么意思的49-60(姑且稱為 xFactor),乘客數量。

所以,嘗試采用分組統計,看是否有意思的發現。

(二)分組統計嘗試一,以xFactor分組

#拆分原數據 newData = data['Month'].str.split('-' ,1,True)#拆分month列 newData.columns = ['Month','xFactor']#命名 newData['NumPassengers'] = data['NumPassengers']#補上最后一列

拆分后的數據框.png

#根據xFactor分組 result1 = newData.groupby(by=['xFactor'])['NumPassengers'].agg({ numpy.sum, numpy.mean })

按xFactor分組統計.png
畫折線圖

(注:因為分組時49-60這一列被默認稱為index,嘗試reset_index失敗——只在console里重置成功,數據框并未更新,所以人為加上了一列xFactor。之后找到合適辦法再改回來)

result1['xFactor']=[49,50,51,52,53,54,55,56,57,58,59,60]#增加分組列
#result1 畫折線圖 plt.plot(result1['xFactor'],result1['sum'],'-') plt.plot(result1['xFactor'],result1['mean'],'--',color='red')

從折線圖可以看出 [年總乘客數]和 [平均乘客數據]隨xFactor的變化,從49-60穩步上升。
據乍一看,還以為均值的變化趨勢不明顯呢,其實是因為Y軸數據量的差別。
嘗試分開作圖:


這樣就可以看出,其實兩個的變化趨勢幅度是一樣的。
(還可以嘗試將兩組數據標準化,按比例列縮放,繪制在同一個圖上。還不會具體操作,稍后實驗)

猜想:xFactor的真實身份

會不會是一個航空公司的不同分公司的數據?如果是,那60,59,58……這些分公司貢獻的客戶量可比49,50……多很多。
一個航空公司的不同航線?同理,60航線貢獻最大。

(二)分組統計嘗試一,以月份分組

`#根據月份分組
result2 = newData.groupby(by=['Month'])['NumPassengers'].agg({
numpy.sum,
numpy.mean

                           })`
按月份分組統計.png

#根據月份分組 result2 = newData.groupby(by=['Month'])['NumPassengers'].agg({ numpy.sum, numpy.mean })

result2['月份']=[4,8,12,2,1,7,6,3,5,11,10,9] result2.sort(columns='月份')

同上index無法重置的原因,該折線圖暫時畫不出來/,姑且先看數據。
可以看出:
乘客數最多:七月 4216
乘客數最少:十一月2794
其中,六、七、八、九月份的乘客數量明顯高于其他月份。可能的一個原因是因為人們喜歡在夏季旅游勝過冬季。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容