熱線電話:13121318867

登錄
首頁CDA發布如何巧妙地用python處理數據整理中分類匯總問題
如何巧妙地用python處理數據整理中分類匯總問題
2022-01-20
收藏

如何巧妙地用python處理數據整理中分類匯總問題

數據分析職場新人,精通一門語言至關重要。寫個web服務,可以用python、 寫個服務器腳本,可以用python、 數據清洗網絡爬蟲,可以用python、 做機器學習數據挖掘,可以用python等等,所以說人生苦短,我用Python。


下面的問題是數據整理中經典的分類匯總問題,各個軟件,SAS、R語言甚至Excel都可以比較好地解決此問題,但Python解決此問題時,也可以做到“一劍封喉”,并體現出其獨特的優勢,我們先看問題:


題目:下列數據來自某市房地產公司的資料,試按房屋類型和每一房屋類型下臥室個數的多少計算其平均售價?

問題比較清楚,這是一個按照“房屋類型”和“臥室個數的多少”的雙條件匯總問題,即考慮在A和B兩個條件下的數據分類匯總問題。該問題在工作中是常見的問題,如果在Excel完成,要依靠數據的預處理和較為復雜的函數來進行。


我們先來試算一下,比如,先看第5行,在“RANCH”這個房屋類型下,“BEDROOMS”個數為3的數據記錄總共有2條,即第“5”條和第“11”條,其房價分別是“$86,650”和“$89,100”,不難算出其平均價格為“$87,875”。


用Python的Pandas(專門進行數據處理的模塊)計算,首先面臨的問題是如何導入數據,并且把房屋價格里面的“$”和“,”去掉,這樣才能進行計算。于是一個雙條件分類匯總的問題變成了字符處理的問題。


當然不可能手動去讀入數據,最簡潔的方式是將數據選擇鼠標右鍵復制下來,然后這樣導入:


導入讓把所有的數據賦給“a”,“a”的數據結構看一下是:
      


告訴我們是“字符串”。面對字符串,進一步顯示“a”,發現其被“n”分割:


于是想辦法去掉“n”。去掉“n”不是很難,一句“a.split("n")”就可以去掉。但是進一步我們發現,各個變量是以空格“ ”相連的,所以還要去掉這個空格以便進一步計算。這里利用Python常用的“逐行掃描”技巧來完成。通常前面要先定義一個空的list,比如b:


這一步完成之后,一定要看一下b的結果,如下圖所示:


下一步就是要去掉價格price里面的“$”和“,”了,這一步完成的方法比較多,最樸素的想法是用什么都沒有的“”去置換這2個元素:


這里又用到Python的“for”循環的“逐行掃描”的技巧。這一步將“b”變成:


到了這一步,離結果只有“一步之遙”了。為了保險起見,我們把所有的變量都“數值化”,使用下面的語句去遍歷:


得到如下的結果:


仔細比較一下前圖,發現字符串都變成了數字。

到了這時候,就是“臨門一腳”了,我們把數據整理成為我們熟悉的“數據框”的形式,這一步讓Pandas來上場,經過整理之后,數據變得“賞心悅目”:


請注意,這條語句中,指明第一行是變量名。

通常,面臨這樣的數據,要進行各種計算是非常方便的。比如,要完成一開始題目提出的問題,只需一句話即得結果:

     


這句“畫龍點睛”之筆是用groupby這個函數把數據按照2個條件分組,然后計算其均值?!?”加函數的方式是Python里面常用的形式。

我們看一下Python計算結果里面的“RANCH”和“3”,是“87875”,與我們之前計算的完全吻合。這樣我們就按要求用Python完成了該數據的整理匯總。

數據的整理匯總是進行數據分析和數據挖掘工作的前期準備,比較重要,往往占用很大一部分時間。數據清洗的能力有時候直接決定數據挖掘建模預測的成敗。通過該簡單的小例子,向大家展示了Python中的Pandas在這方面的優勢和方法。當然,Python及Pandas神通廣大,遠遠不止做這些簡單的工作,希望大家掌握這個數據分析利器,在大數據時代更好更充分的發掘數據的價值。

PS:這只是課程中的一個小案例,強化的培訓,應該讓你學完后很自信,學以致用,快速上手解決工作中的問題,深圳現場班&長沙遠程直播班2018年1月12日開課,想學習python朋友私聊張老師。


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢