【資料處理】北京市租房案例實戰(5)
我報名參加金石計劃1期挑戰——瓜分10萬獎池,這是我的第10篇文章,點選檢視活動詳情
1. 引言
1.1 任務描述:
本節,我們繼續完善北京市租房資料處理實戰,資料集基本處理請參考本系列文章:【資料處理】北京市租房案例實戰(1) - 掘金 (juejin.cn)。 - 資料集是有關於租房資訊的公開資料。 - 具體特徵包括所屬區域、小區名稱、房屋、價格、房屋面積、戶型等等。
本節主要任務是來分析一下各地區目前平均租金情況,並進行資料視覺化。簡單概括如下: - 計算總房子面積 - 計算總價格 - 使用 總價格/總房子面積=平均每平米租金 - 合併表 - 視覺化
注意:本案例使用 Jupyter Notebook 進行案例演示
2. 程式碼演示
為了進一步剖析房屋的情況,接下來,我們來分析一下各地區目前平均租金情況。 - 首先建立一個DataFrame - 用於後續對其進行填充 - 將原表中的區域去重填入這個新的DataFrame
python
df_all = pd.DataFrame({"區域": file_data["區域"].unique(),
"房租總金額": [0]*13,
"總面積": [0]*13})
df_all
執行結果部分展示如下所示:
接下來,計算出總價格與總面積
- 使用分組聚合的方法
- groupby([file_data["區域"]]):以區域進行分組
- file_data["價格(元/月)"].groupby([file_data["區域"]])
:對file_data中"價格(元/月)"這列以區域進行分組
- .sum():計算每組的總和
python
sum_price = file_data["價格(元/月)"].groupby([file_data["區域"]]).sum()
sum_area = file_data["面積(㎡)"].groupby([file_data["區域"]]).sum()
為DataFrame賦值:
python
df_all["房租總金額"] = sum_price.values
df_all["總面積"] = sum_area.values
df_all
執行結果如下圖所示:
計算每個區域的平均房租:
- 總價格/總房子面積=平均每平米租金
- round()
是會將數字保留有效個位數並趨向於最近的偶數
```python
計算各個區域每平方米的房租
df_all["每平米租金(元)"] = round(df_all["房租總金額"] / df_all["總面積"], 2) # 保留兩位小數 df_all ``` 執行結果如下圖所示:
合併兩列表: - 使用merge進行合併列表
python
df_merge = pd.merge(new_df, df_all)
df_merge
執行結果如下圖所示:
2.2 平均租金視覺化
- add_subplot(111):一行一列的畫布中的第一張圖
- enumerate多用於在for迴圈中得到計數,利用它可以同時獲得索引和值,即需要index和value值的時候可以使用enumerate
- zip(l, price:該函式用於將多個可迭代物件作為引數,依次將物件中對應的元素打包成一個個元組,然後返回由這些元組組成的物件。
```python
圖形視覺化
num = df_merge["數量"] price = df_merge["每平米租金(元)"] ls = df_merge["區域"] l = [i for i in range(13)] # 長度
fig = plt.figure(figsize=(18, 8), dpi=100)
顯示折線圖
ax1 = fig.add_subplot(111) ax1.plot(l, price, "or-", label='價格')
for i, (_x, _y) in enumerate(zip(l, price)): print( i, (_x, _y)) plt.text(_x+0.2, _y, price[i]) ax1.set_ylim([0,160]) # y座標軸範圍 ax1.set_ylabel("價格") # y軸標籤 plt.legend(loc="upper") # 圖例位置
顯示條形圖
ax2 = ax1.twinx() plt.bar(l, num, label='數量',alpha=0.2, color="green") # alpha=0.2透明度 ax2.set_ylabel("數量") plt.legend(loc="upper left") plt.xticks(l,ls) # 修改x軸
plt.show() ``` 執行結果如下圖所示:
- 【深度學習】TensorFlow線性迴歸案例演示(3)
- 【機器學習】LSTM神經網路實現中國人口預測(2)
- 【資料處理】北京市租房案例實戰(5)
- 【資料處理】Pandas庫:畫圖與檔案讀取
- 【資料處理】Pandas庫:陣列運算
- 【資料處理】北京市租房案例實戰(3)
- 【PaddleDetection深度學習】中國交通標誌影象分類任務
- 【資料處理】北京市租房案例實戰(4)
- 【資料處理】北京市租房案例實戰(2)
- 【資料處理】Seaborn-NBA資料分析案例(4)
- 【深度學習】工業安全生產環境違規使用手機的識別
- 【資料處理】北京市租房案例實戰(1)
- 【資料處理】Seaborn-NBA資料分析案例(2)
- 【Numpy】資料處理-Numpy庫基本介紹
- 【Numpy資料處理】ndarray介紹
- 【深度學習】醫學影像目標檢測-瘧原蟲識別問題
- Linux作業系統-基本使用(1)
- 智慧演算法-粒子群演算法(3)
- 智慧演算法-粒子群演算法(2)
- 智慧演算法-禁忌搜尋演算法(2)