用Python對2019年二手房價(jià)格進(jìn)行數(shù)據(jù)分析
本篇文章利用爬到數(shù)據(jù)的進(jìn)行數(shù)據(jù)分析。
在這篇文章中,用到pandas、seaborn、Matplotlib等工具,分析工具用到提琴圖、箱型圖、散點(diǎn)圖等。
描述性分析
首先導(dǎo)入各種需要的庫方便后續(xù)一切操作,并讀取數(shù)據(jù)表,直接描述一下看看情況
- import numpy as np
- import pandas as pd
- import matplotlib.pyplot as plt
- import seaborn as sns
- import warnings
- # 這部分是超參數(shù)提前設(shè)置sns.set(style='darkgrid')
- plt.rcParams['font.family']='Arial Unicode MS'
- plt.rcParams['axes.unicode_minus']=False
- warnings.filterwarnings('ignore')
- data =pd.read_csv('鏈家新房100個(gè).csv')
- data.describe()

最貴和最便宜
從上面輸出表格可以看到初步結(jié)論如下:
這些二手房最小面積9.6平米,最大718平米,最便宜的56萬,最貴的5200萬。面積大概集中在59-102平,價(jià)格大概集中在325-630萬,初步信息看完了有個(gè)印象,下邊進(jìn)行詳細(xì)分析。
首先我對這個(gè)9.6平的房子很感興趣,提取出來看看,但是運(yùn)行下邊代碼看到,CBD核心區(qū),別墅,9.64平,56W,估計(jì)是從廁所拆出來賣的。。
作罷。跳過他繼續(xù)分析
- data.min()

而最貴的呢在鼓樓大街(二環(huán)邊上)聯(lián)排別墅,售價(jià)5200萬。emmm
- data.max()

價(jià)格分布&面積分布粗看
現(xiàn)在我想直觀的看一下售價(jià)分布,從下圖可以看到,售價(jià)主要集中在1000萬之內(nèi)
- sns.distplot(data['錢'].dropna())

同樣的思路看一下面積,可以看到這些二手房源面積主要集中在100平米左右
- sns.distplot(data['面積'].dropna())

此處其實(shí)也可以兩張圖一塊看,代碼如下:(都有點(diǎn)右偏)
- fig, ax =plt.subplots(1,2) #2個(gè)子區(qū)域
- sns.distplot(data['錢'],ax=ax[0])
- sns.distplot(data['面積'],ax=ax[1])
- plt.show()

售價(jià)精看
對售價(jià)做一個(gè)箱型圖看看,很明顯的1000萬那條橫線以上的點(diǎn)兒,都是合理數(shù)據(jù)外的數(shù)據(jù)。
- sns.boxplot(data=data['錢'])

那么合理的數(shù)據(jù)分別是什么呢?可以參考以下代碼
- mean, std = data['錢'].mean() , data['錢'].std()
- # 得到上下限
- lower , upper =mean -3*std , mean+3*std
- print('均值',mean)
- print('標(biāo)準(zhǔn)差',std)
- print('下限',lower)
- print('上限',upper)
打印結(jié)果可以看到的是標(biāo)準(zhǔn)差集中在358萬,合理上限是1613萬。對現(xiàn)實(shí)的指導(dǎo)就是:如果有358萬,買一套房子就夠了,1613萬以上的房買起來就是坑爹了。
均值 538.44
標(biāo)準(zhǔn)差 358.47
下限 -536.9763753150206
上限 1613.8755022458467
價(jià)格最低的20套
通過這段代碼可以看一下這些房子分布在哪里。
結(jié)論見代碼下截圖,如果你對北京熟悉,可以看到,這些房子主要分布在5環(huán)外,部分在順義、昌平、門頭溝等地。
- t=data[['小區(qū)','地區(qū)','錢']].sort_values('錢')
- display(t.iloc[:20])


面積精看
同樣的方式,可以把”錢"列換為“面積”列看一下,面積均值89平,標(biāo)準(zhǔn)差50平,合理上限240平
均值 89.8874210879787
標(biāo)準(zhǔn)差 50.36697951495447
下限 -61.21351745688473
上限 240.9883596328421
面積最小的部分信息如下

朝向和裝修程度
通過對戶型方向進(jìn)行分組展示可以看到在北京,主要還是南北向的,東西朝向的低很多
- posit=data['方向'].value_counts()[:10]
- display(posit)

裝修程度有四類:精裝、簡裝、毛坯、其他。
建筑形式有:板樓、塔樓、板樓塔樓結(jié)合、別墅等,
這兩個(gè)維度與價(jià)格有啥關(guān)系呢?
來分析分析,做三個(gè)圖先:
圖一:裝修狀態(tài)和價(jià)格關(guān)系

圖二:裝修狀態(tài)&建筑形式與售價(jià)關(guān)系

圖三:建筑形式連同裝修狀態(tài)與價(jià)格關(guān)系

圖四:建筑形式箱型圖

通過對裝修狀態(tài)做價(jià)格分布圖可以看到,精裝修的集中在400±100萬左右,簡裝稍微便宜一丟丟,毛坯房二手很少,其他形式的很多,價(jià)格集中在300-500萬左右
對裝修狀態(tài)進(jìn)行樓房形式的拆解后做箱型圖如上,得到結(jié)論是板樓、塔樓、板樓塔樓結(jié)合是最多的,不論是精裝簡裝還是其他信息不明的裝修狀態(tài)的。
對建筑形式連同裝修狀態(tài)和價(jià)格關(guān)系可以看到,不論什么類型的建筑形式,都存在精裝修、簡裝修、毛坯。板樓價(jià)格橫跨100萬-1000萬之間,集中在300-600萬之間,板樓塔樓結(jié)合的價(jià)格集中在350萬-700萬之間,塔樓集中在380-700萬之間。
初步結(jié)論,如果能搞到300萬以上,精裝修的板樓或塔樓隨便選。
但若沒這么多錢,也可以有50-300萬之間的選擇,只是選項(xiàng)少一些,但并不是沒有選擇。
在這個(gè)初步結(jié)論基礎(chǔ)上提問:我有xxx萬,那么我能買到多少平的房子呢?
價(jià)格面積分析
先將面積分組,分組函數(shù)如下
- def value_to_level(area):
- if area >= 0 and area <=40:
- return '40內(nèi)'
- elif area >= 41 and area <=60:
- return '41-60'
- elif area >= 61 and area <=80:
- return '61-80'
- elif area >= 81 and area <=130:
- return '81-110'
- elif area >= 81 and area <=130:
- return '111-130'
- elif area >= 131 and area <=180:
- return '131-180'
- elif area >= 181 and area <=250:
- return '181-250'
- else :
- return '250以上'
- level= data['面積'].apply(value_to_level)
- display(level.value_counts())
- sns.countplot(x=level , order=['40內(nèi)','41-60','61-80','81-110','111-130','131-180','181-250','250以上'])
分組后作圖如下:
面積主要集中在40-110平之間。

做一張散點(diǎn)圖,表明價(jià)格、面積的分布,限定橫坐標(biāo)50-500萬之間,縱坐標(biāo)40-120平之間
- sns.scatterplot(data['錢'], data['面積'])
- plt.xlim(50,500)
- plt.ylim(40,120)
- plt.show()
所以,到這里,有大概多少錢,能買多少平的房子,一目了然。
其實(shí)可以看到:180萬以上就有很多選擇了。
如果只是想先買一套100萬左右也有滿足的情況
今天的分析就到這里。
希望對您帶來幫助。