當前位置:
首頁 > 最新 > 使用Python探索二手車市場

使用Python探索二手車市場

往期回顧

前言

上一期中,我們已經手把手的分享了如何使用Python實現某二手車平台數據的抓取,並成功的完成11,281條二手車數據的搜集。基於此,我們需要對獲取的數據進行探索性分析,這裡就採用我們之前學習的pandas模塊和matplotlib模塊的知識點做一個小小的數據分析項目。

數據清洗

我們再來看一下爬蟲後獲取數據的前幾行,便於讀者清楚的了解數據結構,各變數分別代表汽車品牌、汽車款式、上牌時間、行駛里程數、排放標準、二手價格和同款新車的參考價格:

從數據的前6行我們可以發現數據的一些問題,包括二手車的上牌時間,有的樣本記錄為「未上牌」,需要特殊處理、行駛里程數為字元串,需要類型的轉化、新車原價也是字元串,也需要處理、上牌時間為字元串,如何計算上牌時間與當前10月份的時間差(月數)。而這些問題的解決,就需要我們進行數據清洗工作

上牌時間欄位的處理

由於上牌時間欄位存在「未上牌」的值,我們需要看看這樣的值佔多大比例,如果比例不大,可以考慮將其刪除。

由於上面的清洗步驟,導致一些觀測被刪除,此時的行索引就不再是一個連續的自然數了,故需要重新設置索引,以免產生不必要的錯誤(因為pandas模塊中數據結構的行索引會自動對齊)。

行駛里程數欄位的處理

行駛里程數為字元串,要實現字元串轉數值,需要先將欄位中的「萬公里」字樣去除,然後再進行數據類型的轉換。

哎?這裡報錯了,原因是行駛公里數欄位中含「百公里內」這樣的值,所以剔除該欄位末尾3個字元之後,還剩餘「百」字,導致了無法將「百」實現數值的轉化。

行駛里程數為「百公里內」的樣本量僅僅只有63條,佔比為千分之六,我們不妨將「百公里內」的樣本替換成50公里,即0.005萬公里。

同款新車價格欄位的處理

從上面的數據結構可知,同款新車的參考價格都存在「萬」字,要想實現數據類型的轉換,同樣先是將「萬」字去掉,然後進行數值轉換。

由於本人對車子的了解情況甚少,無法對「暫無」的價格進行評估,不妨就將這1.3%的樣本作剔除處理

經過上面的數據清洗工作,數據中有一部分被刪除,也有一部分值被替換。通過數據框結構的shape方法,可知目前數據集還剩下11,047個樣本,一共減少了234條二手車樣本。最後,我們再來看看數據集的概覽情況:

採用可視化方法進行數據探索

直方圖的繪製

我想大家一定也和我一樣,最關心的是二手車的價格分布吧,看看二手車的價格都落在什麼範圍內?首先,我們對二手車的價格繪製一張直方圖,看看其分布形狀。

圖形明顯呈現偏態分布,並且是右偏長尾,即隨著二手車價格越高,車子的數量就下降的越多。那請問,多少比例的二手車會落在某個價格範圍內呢?這個問題的回答,可以藉助於累計頻率直方圖來展示。

從這個累積直方圖可知,一半的二手車價格在10萬以內,就整體而言,80%的二手車均在30萬以內。哈哈,如果你有想法,可以去二手車市場觀望觀望哦。

條形圖的繪製

上面的直方圖,其實質反映的就是等間距的條形圖。如果需要自定義價格範圍,然後基於這個範圍再作條形圖的繪製,該如何操作呢?這裡需要藉助於pandas模塊中的cut函數,將連續的數值切割成不同的數據段:

很顯然,從這個自定義的分段數據中,5~8萬的二手車最多,佔了17.72%,其次是3~5萬,也佔了16.21%。從總體的排序來看,10萬以內的二手車數量,排在了前3。

餅圖的繪製

關心完了二手車的價格,是不是該關心一下這輛車跑了多少路了?畢竟二手車的價格跟行駛里程數也是有關係的嘛。我們按照二手車網站的篩選條件,將行駛里程數分割為5段,即1萬公里以內、1~3萬公里、3~5萬公里、5~10萬公里及10萬公里以上。

從餅圖返回的信息可知,超過一半的車,其行駛里程數在5~10萬公里,而佔比最少的是1萬公里以內的二手車,6%不到。

散點圖的繪製

影響二手車價格的因素可能二手車的行駛時長、行駛公里數和汽車品牌,直觀感覺,二手車的價格應該與行駛時長、行駛公里數成反向關係,即行駛時長或行駛公里數越大,則二手車的價格應該越便宜。接下來我們來探索一下,是不是這麼個道理,由於二手車的品牌也嚴重影響價格,故這裡以奧迪和大眾為例,繪製散點圖

很顯然,從圖中可知,二手車的行駛里程數與價格成反向關係,似乎奧迪車顯示的更為明顯。接下來我們再來看看二手車的行駛時長與價格之間是否也是反向關係,這裡就以奧迪車為例了,同時,我們也在散點圖的基礎上再添加一條回歸線

OK,感覺上還是蠻準確的,即二手車的行駛時長與價格之間確實存在反向關係。從圖中我們也發現一些遠離總體的異常點,即價格在100萬以上的,我想這些都是頂級高檔的奧迪汽車了吧。但不管怎樣,這些「異常點」也符合行駛時長與價格之間反向關係

結語

OK,關於二手車的探索性分析案例,我們就分享到這裡,但感興趣的你,一定要動手操作一遍,否則還是走馬觀花的效果哦。如果你有問題,歡迎在公眾號的留言區域表達你的疑問。同時,也歡迎各位朋友繼續轉發與分享文中的內容,讓跟多的人學習和操作。最後,本文相關的Python腳本和PDF版本已存放到百度雲盤,可以通過下面的鏈接獲取

鏈接: https://pan.baidu.com/s/1dFapkdV 密碼: 9qv4

每天進步一點點2015

學習與分享,取長補短,關注小號!


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python 的精彩文章:

Python 之自動獲取公網IP
總結學習 Python的14 張思維導圖匯總
Python裝飾器是精通Python的第一道關卡!看大牛是怎麼理解它的!
Python調用MySQL模塊初試
如何使用Python Impyla客戶端連接Hive和Impala

TAG:Python |