【資料處理】北京市租房案例實戰(4)

語言: CN / TW / HK

我報名參加金石計劃1期挑戰——瓜分10萬獎池,這是我的第9篇文章,點選檢視活動詳情

1. 引言

1.1 任務要求:

本節,我們繼續完善北京市租房資料處理實戰,資料集基本處理請參考本系列文章:【資料處理】北京市租房案例實戰(1) - 掘金 (juejin.cn)

本節的主要任務是對北京市租房資料中的戶型數量進行分析,隨著人們生活水平的提高,以及各住戶的生活需求,開發商設計出了各種各樣的戶型供人們居住。接下來,我們來分析一下戶型,統計租房市場中哪種戶型的房源數量偏多,並篩選出數量大於50%的戶型。

2. 程式碼演示

2.1 戶型數量分析

從原資料表中檢視戶型資料,並賦值給新變數: python house_data = file_data["戶型"] house_data.head() 執行結果如下圖所示:

image.png

接下來,我們需要定義一個函式完成以下要求: - 函式任務主要就是去統計每種戶型的數量 1. 先對戶型資料進行去重 2. 統計每種戶型的數量 3. 將鍵值對寫入字典 ```python def all_house(arr): """ 統計每個戶型有多少 構造鍵值對 """ # 去重處理 key = np.unique(arr) result = {} # 空字典

for k in key:
    mask = (arr == k)

    arr_new = arr[mask]
    v = arr_new.size
    result[k] = v

return result

``` 呼叫函式寫入資料:

python house_info = all_house(house_data) house_info 執行結果如下圖所示:

image.png

下面,我們將篩選出戶型數量大於50的資料 - 從字典中篩選資料 - 輸出還是字典形式 ```python

去掉統計數量較少的值

篩選出大於50的資料

house_data = dict((key, value) for key, value in house_info.items() if value > 50) ``` 然後,將字典轉為表格形式: - 使用pd.DataFrame寫入資料

```python

字典轉為列表

show_houses = pd.DataFrame({"戶型":[x for x in house_data.keys()], "數量":[x for x in house_data.values()]}) show_houses ``` 執行結果如下圖所示:

image.png

2.2 戶型數量視覺化

我們將要對剛才統計好的戶型數量進行條形圖繪製 - plt.barh:橫向的柱狀圖 - plt.xlabel:新增x軸標籤名稱 - plt.yticks:新增y軸刻度顯示 - range(11):11個刻度 - house_type:刻度名稱

  • plt.title:為影象新增名稱
  • 前三行程式碼表示開啟支援中文顯示
  • y+0.5,x-0.2:調節柱上數字顯示位置 ```python from matplotlib.font_manager import FontProperties myfont=FontProperties(fname=r'/usr/share/fonts/fangzheng/FZSYJW.TTF',size=12) sns.set(font=myfont.get_name())

圖形展示:房屋型別

house_type = show_houses["戶型"] house_type_num = show_houses["數量"] plt.barh(range(11), house_type_num) plt.yticks(range(11), house_type) plt.xlim(0,2500) plt.title("北京市各區租房數量統計")

plt.xlabel("數量") plt.ylabel("房屋型別")

給每個條上面新增具體數字

for x,y in enumerate(house_type_num): print(x,y) plt.text(y+0.5,x-0.2,"%s" %y) plt.show() ``` 執行結果如下圖所示:

image.png