成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用Python分析北京二手房房價

開發 后端 數據分析
用Python分析北京二手房房價,首先導入要使用的科學計算包numpy,pandas,可視化matplotlib,seaborn,以及機器學習包sklearn。

數據初探

首先導入要使用的科學計算包numpy,pandas,可視化matplotlib,seaborn,以及機器學習包sklearn。

  1. import pandas as pd 
  2. import numpy as np 
  3. import seaborn as sns 
  4. import matplotlib as mpl 
  5.  
  6. import matplotlib.pyplot as plt 
  7. from IPython.display import display 
  8. plt.style.use("fivethirtyeight"
  9. sns.set_style({'font.sans-serif':['simhei','Arial']}) 
  10. %matplotlib inline 
  11.  
  12.  
  13. # 檢查Python版本 
  14. from sys import version_info 
  15. if version_info.major != 3: 
  16.     raise Exception('請使用Python 3 來完成此項目'

然后導入數據,并進行初步的觀察,這些觀察包括了解數據特征的缺失值,異常值,以及大概的描述性統計。

  1. # 導入鏈家二手房數據 
  2. lianjia_df = pd.read_csv('lianjia.csv'
  3. display(lianjia_df.head(n=2)) 

 

用Python分析北京二手房房價

初步觀察到一共有11個特征變量,Price 在這里是我們的目標變量,然后我們繼續深入觀察一下。

  1. # 檢查缺失值情況 
  2. lianjia_df.info() 

 用Python分析北京二手房房價

發現了數據集一共有23677條數據,其中Elevator特征有明顯的缺失值。

  1. lianjia_df.describe() 

 用Python分析北京二手房房價

上面結果給出了特征值是數值的一些統計值,包括平均數,標準差,中位數,最小值,最大值,25%分位數,75%分位數。這些統計結果簡單直接,對于初始了解一個特征好壞非常有用,比如我們觀察到 Size 特征 的最大值為1019平米,最小值為2平米,那么我們就要思考這個在實際中是不是存在的,如果不存在沒有意義,那么這個數據就是一個異常值,會嚴重影響模型的性能。

當然,這只是初步觀察,后續我們會用數據可視化來清晰的展示,并證實我們的猜測。

  1. # 添加新特征房屋均價 
  2. df = lianjia_df.copy() 
  3. df['PerPrice'] = lianjia_df['Price']/lianjia_df['Size'
  4.  
  5. # 重新擺放列位置 
  6. columns = ['Region''District''Garden''Layout''Floor''Year''Size''Elevator''Direction''Renovation''PerPrice''Price'
  7. df = pd.DataFrame(df, columns = columns) 
  8.  
  9. # 重新審視數據集 
  10. display(df.head(n=2) 

我們發現 Id 特征其實沒有什么實際意義,所以將其移除。由于房屋單價分析起來比較方便,簡單的使用總價/面積就可得到,所以增加一個新的特征 PerPrice(只用于分析,不是預測特征)。另外,特征的順序也被調整了一下,看起來比較舒服。

 用Python分析北京二手房房價

數據可視化分析

Region特征分析

對于區域特征,我們可以分析不同區域房價和數量的對比。

  1. # 對二手房區域分組對比二手房數量和每平米房價 
  2. df_house_count = df.groupby('Region')['Price'].count().sort_values(ascending=False).to_frame().reset_index() 
  3. df_house_mean = df.groupby('Region')['PerPrice'].mean().sort_values(ascending=False).to_frame().reset_index() 
  4.  
  5. f, [ax1,ax2,ax3] = plt.subplots(3,1,figsize=(20,15)) 
  6. sns.barplot(x='Region', y='PerPrice', palette="Blues_d", data=df_house_mean, ax=ax1) 
  7. ax1.set_title('北京各大區二手房每平米單價對比',fontsize=15) 
  8. ax1.set_xlabel('區域'
  9. ax1.set_ylabel('每平米單價'
  10.  
  11. sns.barplot(x='Region', y='Price', palette="Greens_d", data=df_house_count, ax=ax2) 
  12. ax2.set_title('北京各大區二手房數量對比',fontsize=15) 
  13. ax2.set_xlabel('區域'
  14. ax2.set_ylabel('數量'
  15.  
  16. sns.boxplot(x='Region', y='Price', data=df, ax=ax3) 
  17. ax3.set_title('北京各大區二手房房屋總價',fontsize=15) 
  18. ax3.set_xlabel('區域'
  19. ax3.set_ylabel('房屋總價'
  20.  
  21. plt.show() 

用Python分析北京二手房房價

 用Python分析北京二手房房價

 

 

用Python分析北京二手房房價

使用了pandas的網絡透視功能 groupby 分組排序。區域特征可視化直接采用 seaborn 完成,顏色使用調色板 palette 參數,顏色漸變,越淺說明越少,反之越多。可以觀察到:

  • 二手房均價:西城區的房價最貴均價大約11萬/平,因為西城在二環以里,且是熱門學區房的聚集地。其次是東城大約10萬/平,然后是海淀大約8.5萬/平,其它均低于8萬/平。
  • 二手房房數量:從數量統計上來看,目前二手房市場上比較火熱的區域。海淀區和朝陽區二手房數量最多,差不多都接近3000套,畢竟大區,需求量也大。然后是豐臺區,近幾年正在改造建設,有趕超之勢。
  • 二手房總價:通過箱型圖看到,各大區域房屋總價中位數都都在1000萬以下,且房屋總價離散值較高,西城最高達到了6000萬,說明房屋價格特征不是理想的正太分布。

Size特征分析

  1. f, [ax1,ax2] = plt.subplots(1, 2, figsize=(15, 5)) 
  2. # 建房時間的分布情況 
  3. sns.distplot(df['Size'], bins=20, ax=ax1, color='r'
  4. sns.kdeplot(df['Size'], shade=True, ax=ax1) 
  5. # 建房時間和出售價格的關系 
  6. sns.regplot(x='Size', y='Price', data=df, ax=ax2) 
  7. plt.show() 

 用Python分析北京二手房房價

Size 分布:

  • 通過 distplot 和 kdeplot 繪制柱狀圖觀察 Size 特征的分布情況,屬于長尾類型的分布,這說明了有很多面積很大且超出正常范圍的二手房。

Size 與 Price 的關系:

  • 通過 regplot 繪制了 Size 和 Price 之間的散點圖,發現 Size 特征基本與Price呈現線性關系,符合基本常識,面積越大,價格越高。但是有兩組明顯的異常點:1. 面積不到10平米,但是價格超出10000萬;2. 一個點面積超過了1000平米,價格很低,需要查看是什么情況。
  1. df.loc[df['Size']< 10] 

 用Python分析北京二手房房價

經過查看發現這組數據是別墅,出現異常的原因是由于別墅結構比較特殊(無朝向無電梯),字段定義與二手商品房不太一樣導致爬蟲爬取數據錯位。也因別墅類型二手房不在我們的考慮范圍之內,故將其移除再次觀察Size分布和Price關系。

 df.loc[df['Size']>1000] 

經觀察這個異常點不是普通的民用二手房,很可能是商用房,所以才有1房間0廳確有如此大超過1000平米的面積,這里選擇移除。

  1. df.loc[df['Size']>1000] 

 用Python分析北京二手房房價

重新進行可視化發現就沒有明顯的異常點了。

Layout特征分析

  1. f, ax1= plt.subplots(figsize=(20,20)) 
  2. sns.countplot(y='Layout', data=df, ax=ax1) 
  3. ax1.set_title('房屋戶型',fontsize=15) 
  4. ax1.set_xlabel('數量'
  5. ax1.set_ylabel('戶型'
  6. plt.show() 

 用Python分析北京二手房房價

這個特征真是不看不知道,各種廳室組合搭配,竟然還有9室3廳,4室0廳等奇怪的結構。其中,2室一廳占絕大部分,其次是3室一廳,2室2廳,3室兩廳。但是仔細觀察特征分類下有很多不規則的命名,比如2室一廳與2房間1衛,還有別墅,沒有統一的叫法。這樣的特征肯定是不能作為機器學習模型的數據輸入的,需要使用特征工程進行相應的處理。

Renovation 特征分析

  1. df['Renovation'].value_counts() 
  • 精裝 11345
  • 簡裝 8497
  • 其他 3239
  • 毛坯 576南北 20
  • Name: Renovation, dtype: int64

發現Renovation裝修特征中竟然有南北,它屬于朝向的類型,可能是因為爬蟲過程中一些信息位置為空,導致“Direction”朝向特征出現在這里,所以需要清除或替換掉。

  1. # 去掉錯誤數據“南北”,因為爬蟲過程中一些信息位置為空,導致“Direction”的特征出現在這里,需要清除或替換 
  2. df['Renovation'] = df.loc[(df['Renovation'] != '南北'), 'Renovation'
  3.  
  4. # 畫幅設置 
  5. f, [ax1,ax2,ax3] = plt.subplots(1, 3, figsize=(20, 5)) 
  6. sns.countplot(df['Renovation'], ax=ax1) 
  7. sns.barplot(x='Renovation', y='Price', data=df, ax=ax2) 
  8. sns.boxplot(x='Renovation', y='Price', data=df, ax=ax3) 
  9. plt.show() 

 用Python分析北京二手房房價

用Python分析北京二手房房價

用Python分析北京二手房房價

觀察到,精裝修的二手房數量最多,簡裝其次,也是我們平日常見的。而對于價格來說,毛坯類型卻是最高,其次是精裝修。

Elevator 特征分析

初探數據的時候,我們發現 Elevator 特征是有大量缺失值的,這對于我們是十分不利的,首先我們先看看有多少缺失值:

  1. misn = len(df.loc[(df['Elevator'].isnull()), 'Elevator']) 
  2. print('Elevator缺失值數量為:'+ str(misn)) 

Elevator 缺失值數量為:8237

這么多的缺失值怎么辦呢?這個需要根據實際情況考慮,常用的方法有平均值/中位數填補法,直接移除,或者根據其他特征建模預測等。

這里我們考慮填補法,但是有無電梯不是數值,不存在平均值和中位數,怎么填補呢?這里給大家提供一種思路:就是根據樓層 Floor 來判斷有無電梯,一般的樓層大于6的都有電梯,而小于等于6層的一般都沒有電梯。有了這個標準,那么剩下的就簡單了。

  1. # 由于存在個別類型錯誤,如簡裝和精裝,特征值錯位,故需要移除 
  2. df['Elevator'] = df.loc[(df['Elevator'] == '有電梯')|(df['Elevator'] == '無電梯'), 'Elevator'
  3.  
  4. # 填補Elevator缺失值 
  5. df.loc[(df['Floor']>6)&(df['Elevator'].isnull()), 'Elevator'] = '有電梯' 
  6. df.loc[(df['Floor']<=6)&(df['Elevator'].isnull()), 'Elevator'] = '無電梯' 
  7.  
  8. f, [ax1,ax2] = plt.subplots(1, 2, figsize=(20, 10)) 
  9. sns.countplot(df['Elevator'], ax=ax1) 
  10. ax1.set_title('有無電梯數量對比',fontsize=15) 
  11. ax1.set_xlabel('是否有電梯'
  12. ax1.set_ylabel('數量'
  13. sns.barplot(x='Elevator', y='Price', data=df, ax=ax2) 
  14. ax2.set_title('有無電梯房價對比',fontsize=15) 
  15. ax2.set_xlabel('是否有電梯'
  16. ax2.set_ylabel('總價'
  17. plt.show() 

 用Python分析北京二手房房價

結果觀察到,有電梯的二手房數量居多一些,畢竟高層土地利用率比較高,適合北京龐大的人群需要,而高層就需要電梯。相應的,有電梯二手房房價較高,因為電梯前期裝修費和后期維護費包含內了(但這個價格比較只是一個平均的概念,比如無電梯的6層豪華小區當然價格更高了)。

Year 特征分析

  1. grid = sns.FacetGrid(df, row='Elevator', col='Renovation', palette='seismic',size=4) 
  2. grid.map(plt.scatter, 'Year''Price'
  3. grid.add_legend() 

 用Python分析北京二手房房價

在Renovation和Elevator的分類條件下,使用 FaceGrid 分析 Year 特征,觀察結果如下:

整個二手房房價趨勢是隨著時間增長而增長的;

  • 2000年以后建造的二手房房價相較于2000年以前有很明顯的價格上漲;
  • 1980年之前幾乎不存在有電梯二手房數據,說明1980年之前還沒有大面積安裝電梯;
  • 1980年之前無電梯二手房中,簡裝二手房占絕大多數,精裝反而很少;

Floor 特征分析

  1. f, ax1= plt.subplots(figsize=(20,5)) 
  2. sns.countplot(x='Floor', data=df, ax=ax1) 
  3. ax1.set_title('房屋戶型',fontsize=15) 
  4. ax1.set_xlabel('數量'
  5. ax1.set_ylabel('戶型'
  6. plt.show() 

 用Python分析北京二手房房價

可以看到,6層二手房數量最多,但是單獨的樓層特征沒有什么意義,因為每個小區住房的總樓層數都不一樣,我們需要知道樓層的相對意義。另外,樓層與文化也有很重要聯系,比如中國文化七上八下,七層可能受歡迎,房價也貴,而一般也不會有4層或18層。當然,正常情況下中間樓層是比較受歡迎的,價格也高,底層和頂層受歡迎度較低,價格也相對較低。所以樓層是一個非常復雜的特征,對房價影響也比較大。

總結

本次分享旨在讓大家了解如何用Python做一個簡單的數據分析,對于剛剛接觸數據分析的朋友無疑是一個很好的練習。不過,這個分析還存在很多問題需要解決,比如:

  • 解決爬蟲獲取的數據源準確度問題;
  • 需要爬取或者尋找更多好的售房特征;
  • 需要做更多地特征工程工作,比如數據清洗,特征選擇和篩選;
  • 使用統計模型建立回歸模型進行價格預測;

作者:xiaoyu,一個半路轉行的數據挖掘工程師,Python數據科學。

責任編輯:未麗燕 來源: Python數據科學
相關推薦

2018-08-21 21:13:32

爬蟲Python住房

2020-05-06 15:48:24

Python數據二手房價

2019-12-19 15:56:10

Python數據工具

2020-10-27 15:18:39

央行數字人民幣穆長春

2013-03-19 14:25:36

2020-06-05 19:19:03

蘋果促銷商家

2012-07-02 09:36:10

鏈家地產組織與勞動力轉型

2023-05-09 12:40:40

數據分析Cars24Pandas

2016-12-02 17:56:15

華為雙活存儲

2011-06-08 21:41:14

噴墨打印機推薦

2020-03-30 21:36:57

硬件CPU顯卡

2011-11-28 15:07:52

寬帶

2022-06-29 09:24:23

顯卡崩盤價格

2018-10-29 15:41:16

二手硬件處理器

2020-07-14 11:14:55

網絡安全APP技術

2009-08-18 16:34:12

2020-06-04 18:30:06

二手硬件CPU主板

2012-08-31 10:02:34

2023-07-13 23:27:05

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜精品久久久久久 | 精一区二区 | 久久一久久| 一级片在线观看 | 波多野结衣亚洲 | 午夜精品久久 | caoporn免费 | 日本激情一区二区 | 在线观看黄视频 | 欧美日韩精品 | 日韩美女爱爱 | 国产毛片久久久久久久久春天 | 中文字幕日韩在线观看 | 欧美日韩一区二区在线播放 | 精品久久久久久久久久久院品网 | 91精品国产乱码久久久久久久 | 精品亚洲一区二区三区四区五区 | 久精品久久 | 国产精品一区二区三区久久久 | 亚洲精品一区二三区不卡 | 午夜精品网站 | 日韩欧美在线观看 | 超碰欧美 | 国产高清视频一区 | 亚洲日本激情 | 国产成人精品高清久久 | 亚洲狠狠丁香婷婷综合久久久 | 精品欧美乱码久久久久久1区2区 | 天天曰夜夜操 | 一区二区三区中文字幕 | 亚洲高清在线 | 99精品久久| 99国产欧美| 国产精品一区二区免费 | 国产91久久久久蜜臀青青天草二 | 99re6在线视频精品免费 | 日韩高清不卡 | 欧洲视频一区二区 | 久久综合一区 | 粉嫩av在线 | 国产粉嫩尤物极品99综合精品 |