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

語言: CN / TW / HK

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

1. 引言

1.1 專案需求:

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

本節將主要任務是對專案進行資料預處理,統一一下表格中某些列的表達方式,比如將“幾房間”替換成“幾室”,轉換資料型別,方便後續進行資料處理。

2. 案例演示

2.1 戶型表達方式替換

在“戶型”一列中,大部分資料顯示的是“室廳”,只有個別資料顯示的是“房間”“衛”,為了方便後期的使用,需要將“房間”替換成“室”,以保證資料的一致性。

  • pandas.replace()方法可以完成替換資料的操作
  • 使用for迴圈遍歷,對每個值進行替換並追加到新的空陣列內
  • 將新的陣列賦值給表格中的指定列,完成替換

獲取資料集:

python file_data = pd.read_csv("鏈家北京租房資料.csv") file_data 原資料集大體內容展示如下:原資料集“戶型那一列”表達方式不同意,需要進行替換。

image.png

```python

獲取戶型

house_data = file_data["戶型"] temp_list = [] # 建立空列表

for i in house_data: # print(i) new_info = i.replace("房間", "室") # 將房間替換成室 temp_list.append(new_info) temp_list ``` 部分執行結果展示如下:

image.png

替換原表格資料:

```python

替換原表格

file_data.loc[:,"戶型"] = temp_list file_data ``` 執行結果如下所示:可以看出,“戶型”那一列已經被替換。

image.png

2.2 房源數量&位置分佈分析

如果希望統計各個區域的房源數量,以及檢視這些房屋的分佈情況,則需要先獲取各個區的房源,為了實現這個需求,可以將整個資料按照“區域”一列進行分組。

為了能夠準確地看到各區域的房源數量,這裡只需要展示“區域”和是“數量”這兩列的資料即可。因此,先建立一個空的DataFrame物件,然後再將各個區域計算的總數量作為該物件的資料進行展示。 - 新建DataFrame - file_data["區域"].unique():篩選出區域,同樣的區域保留一個 - DataFrame包含"區域和"數量"兩列

python new_df = pd.DataFrame({"區域": file_data["區域"].unique(), "數量":[0]*13}) new_df 執行結果:執行結果部分展示

image.png

然後,我們使用分組聚合計數的方法,來統計每個區域的房源數量 - groupby(by="區域"):以原表格中“區域”這一列進行分組 - .count()將分組結果中的每組資料進行計數(每個類別有多少樣本) ```python

獲取每個區域房源數量

分組聚合 計數聚合

area_count = file_data.groupby(by="區域").count() ``` 接下來,為列賦值,將分組的結果賦值給剛才新建的DataFrame中的“數量”那一列

```python

為列賦值

new_df["數量"] = area_count.values new_df ``` 執行結果如下圖所示:可以看出已經分組好了並新增到DataFrame中了,但是還沒有排序。

image.png

對“數量”那一列進行排序: - 降序排列:ascending=False ```python

排序

降序排列

new_df.sort_values(by="數量", ascending=False) ``` 執行結果如下圖所示:可以看出區域的房源量已經從大到小排序了。

image.png