利用Python對(duì)鏈家網(wǎng)北京主城區(qū)二手房進(jìn)行數(shù)據(jù)分析

  • 本文主要講述如何通過pandas對(duì)爬蟲下來的鏈家數(shù)據(jù)進(jìn)行相應(yīng)的二手房數(shù)據(jù)分析止毕,主要分析內(nèi)容包括各個(gè)行政區(qū)昧互,各個(gè)小區(qū)的房源信息情況瞒瘸。
  • 數(shù)據(jù)來源 https://github.com/XuefengHuang/lianjia-scrawler 該repo提供了python程序進(jìn)行鏈家網(wǎng)爬蟲裆泳,并從中提取二手房?jī)r(jià)格弛姜、面積、戶型和二手房關(guān)注度等數(shù)據(jù)飒货。
  • 分析方法參考 http://www.reibang.com/p/44f261a62c0f

導(dǎo)入鏈家網(wǎng)二手房在售房源的文件(數(shù)據(jù)更新時(shí)間2017-11-29)

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans

import sys

stdout = sys.stdout
reload(sys)
sys.setdefaultencoding('utf-8')
sys.stdout = stdout

plt.rcParams['font.sans-serif'] = ['SimHei']    
plt.rcParams['axes.unicode_minus'] = False

#所有在售房源信息
house=pd.read_csv('houseinfo.csv')

# 所有小區(qū)信息
community=pd.read_csv('community.csv')

# 合并小區(qū)信息和房源信息表魄衅,可以獲得房源更詳細(xì)的地理位置
community['community'] = community['title']
house_detail = pd.merge(house, community, on='community')

將數(shù)據(jù)從字符串提取出來

# 將字符串轉(zhuǎn)換成數(shù)字
def data_adj(area_data, str):       
    if str in area_data :        
        return float(area_data[0 : area_data.find(str)])    
    else :        
        return None
# 處理房屋面積數(shù)據(jù)
house['square'] = house['square'].apply(data_adj,str = '平米')

刪除車位信息

car=house[house.housetype.str.contains('車位')]
print '記錄中共有車位%d個(gè)'%car.shape[0]
house.drop(car.index,inplace=True)
print '現(xiàn)在還剩下%d條記錄'%house.shape[0]
記錄中共有車位32個(gè)
現(xiàn)在還剩下16076條記錄

價(jià)格最高的5個(gè)別墅

bieshu=house[house.housetype.str.contains('別墅')]
print '記錄中共有別墅%d棟'%bieshu.shape[0]
bieshu.sort_values('totalPrice',ascending=False)['title'].head()
記錄中共有別墅50棟





8020       香山清琴二期獨(dú)棟別墅,毛坯房原始戶型塘辅,花園1200平米
102               千尺獨(dú)棟 北入戶 紅頂商人金融界入住社區(qū)
2729    臨湖獨(dú)棟別墅 花園半畝 觀景湖面和綠化 滿五年有車庫(kù)房主自薦
3141           銀湖別墅 獨(dú)棟 望京公園旁 五環(huán)里 封閉式社區(qū)
4112           首排別墅 位置好 全景小區(qū)綠化和人工湖 有車庫(kù)
Name: title, dtype: object

刪除別墅信息

house.drop(bieshu.index,inplace=True)
print '現(xiàn)在還剩下%d條記錄'%house.shape[0]
現(xiàn)在還剩下16026條記錄

獲取總價(jià)前五的房源信息

house.sort_values('totalPrice',ascending=False)['title'].head(5)
8571      中關(guān)村創(chuàng)業(yè)大街對(duì)過 有名的公司入駐其中正規(guī)寫字樓
11758    中關(guān)村創(chuàng)業(yè)大街對(duì)過 有名的公司入駐其中正規(guī)一層底商
2480       西山別墅區(qū)擁有900平大花園純獨(dú)棟社區(qū)房主自薦
14492         盤古大觀 大平層 觀景房 格局可塑性強(qiáng)晃虫!
10154       朝陽(yáng)公園內(nèi)建筑,視野好扣墩,可以俯視朝陽(yáng)公園美景
Name: title, dtype: object

獲取戶型數(shù)量分布信息

housetype = house['housetype'].value_counts()
housetype.head(8).plot(kind='bar',x='housetype',y='size', title='戶型數(shù)量分布')
plt.legend(['數(shù)量']) 
plt.show()
獲取戶型數(shù)量分布信息

關(guān)注人數(shù)最多5套房子

house['guanzhu'] = house['followInfo'].apply(data_adj,str = '人關(guān)注')
house.sort_values('guanzhu',ascending=False)['title'].head(5)
47                   弘善家園南向開間哲银,滿兩年,免增值稅
2313         四惠東 康家園 南向一居室 地鐵1號(hào)線出行房主自薦
990     遠(yuǎn)見名苑  東南兩居  滿五年家庭唯一住房 誠(chéng)心出售房主自薦
2331               榮豐二期朝南復(fù)式無遮擋全天采光房主自薦
915             通州萬達(dá)北苑地鐵站 天時(shí)名苑 大兩居可改3居
Name: title, dtype: object

戶型和關(guān)注人數(shù)分布

fig, ax1 = plt.subplots(1,1)    
type_interest_group = house['guanzhu'].groupby(house['housetype']).agg([('戶型', 'count'), ('關(guān)注人數(shù)', 'sum')])    
#取戶型>50的數(shù)據(jù)進(jìn)行可視化
ti_sort = type_interest_group[type_interest_group['戶型'] > 50].sort_values(by='戶型')    
ti_sort.plot(kind='barh', alpha=0.7, grid=True, ax=ax1)    
plt.title('二手房戶型和關(guān)注人數(shù)分布')    
plt.ylabel('戶型') 
plt.show()
戶型和關(guān)注人數(shù)分布

面積分布

fig,ax2 = plt.subplots(1,1)    
area_level = [0, 50, 100, 150, 200, 250, 300, 500]    
label_level = ['小于50', '50-100', '100-150', '150-200', '200-250', '250-300', '300-350']    
area_cut = pd.cut(house['square'], area_level, labels=label_level)        
area_cut.value_counts().plot(kind='bar', rot=30, alpha=0.4, grid=True, fontsize='small', ax=ax2)    
plt.title('二手房面積分布')    
plt.xlabel('面積')    
plt.legend(['數(shù)量'])    
plt.show()
面積分布

聚類分析

# 缺失值處理:直接將缺失值去掉    
cluster_data = house[['guanzhu','square','totalPrice']].dropna()    
#將簇?cái)?shù)設(shè)為3    
K_model = KMeans(n_clusters=3)    
alg = K_model.fit(cluster_data)    
'------聚類中心------'   
center = pd.DataFrame(alg.cluster_centers_, columns=['關(guān)注人數(shù)','面積','房?jī)r(jià)'])    
cluster_data['label'] = alg.labels_ 
center
id 關(guān)注人數(shù) 面積 房?jī)r(jià)
0 49.787599 134.952934 1138.906738
1 48.573579 256.357676 2549.974916
2 61.485727 74.484049 515.354447

北京市在售面積最小二手房

house.sort_values('square').iloc[0,:]
houseID                                            101102324602
title                                      智德北巷(北河沿大街)+小戶型一居+南向
link          https://bj.lianjia.com/ershoufang/101102324602...
community                                                  智德北巷
years                                          中樓層(共6層)1985年建板樓
housetype                                                  1室0廳
square                                                    15.29
direction                                                     南
floor                                          中樓層(共6層)1985年建板樓
taxtype                                          距離5號(hào)線燈市口站1113米
totalPrice                                                  220
unitPrice                                                143885
followInfo                               56人關(guān)注 / 共2次帶看 / 8天以前發(fā)布
validdate                                   2017-11-29 13:23:16
guanzhu                                                      56
Name: 15260, dtype: object

北京市在售面積最大二手房

house.sort_values('square',ascending=False).iloc[0,:]
houseID                                            101102105035
title                                  中關(guān)村創(chuàng)業(yè)大街對(duì)過 有名的公司入駐其中正規(guī)寫字樓
link          https://bj.lianjia.com/ershoufang/101102105035...
community                                                  銀科大廈
years                                         低樓層(共22層)2004年建塔樓
housetype                                                 1房間0衛(wèi)
square                                                  2623.28
direction                                               東 南 西 北
floor                                         低樓層(共22層)2004年建塔樓
taxtype                                     距離10號(hào)線蘇州街站898米房本滿五年
totalPrice                                                12000
unitPrice                                                 45745
followInfo                               1人關(guān)注 / 共0次帶看 / 2個(gè)月以前發(fā)布
validdate                                   2017-11-29 14:07:32
guanzhu                                                       1
Name: 8571, dtype: object

各個(gè)行政區(qū)房源均價(jià)

house_unitprice_perdistrict = house_detail.groupby('district').mean()['unitPrice']
house_unitprice_perdistrict.plot(kind='bar',x='district',y='unitPrice', title='各個(gè)行政區(qū)房源均價(jià)')
plt.legend(['均價(jià)']) 
plt.show()
各個(gè)行政區(qū)房源均價(jià)

各個(gè)區(qū)域房源數(shù)量排序

bizcircle_count=house_detail.groupby('bizcircle').size().sort_values(ascending=False)
bizcircle_count.head(20).plot(kind='bar',x='bizcircle',y='size', title='各個(gè)區(qū)域房源數(shù)量分布')
plt.legend(['數(shù)量']) 
plt.show()
各個(gè)區(qū)域房源數(shù)量排序

各個(gè)區(qū)域均價(jià)排序

bizcircle_unitprice=house_detail.groupby('bizcircle').mean()['unitPrice'].sort_values(ascending=False)
bizcircle_unitprice.head(20).plot(kind='bar',x='bizcircle',y='unitPrice', title='各個(gè)區(qū)域均價(jià)分布')
plt.legend(['均價(jià)']) 
plt.show()
各個(gè)區(qū)域均價(jià)排序

各個(gè)區(qū)域小區(qū)數(shù)量

bizcircle_community=community.groupby('bizcircle')['title'].size().sort_values(ascending=False)
bizcircle_community.head(20).plot(kind='bar', x='bizcircle',y='size', title='各個(gè)區(qū)域小區(qū)數(shù)量分布')
plt.legend(['數(shù)量']) 
plt.show()
各個(gè)區(qū)域小區(qū)數(shù)量

按小區(qū)均價(jià)排序

community_unitprice = house.groupby('community').mean()['unitPrice'].sort_values(ascending=False)
community_unitprice.head(15).plot(kind='bar',x='community',y='unitPrice', title='各個(gè)小區(qū)均價(jià)分布')
plt.legend(['均價(jià)']) 
plt.show()
小區(qū)均價(jià)排序[圖片上傳中...(output_32_0.png-8a72c2-1511945570106-0)]
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末呻惕,一起剝皮案震驚了整個(gè)濱河市盘榨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蟆融,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件守呜,死亡現(xiàn)場(chǎng)離奇詭異型酥,居然都是意外死亡山憨,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門弥喉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來郁竟,“玉大人,你說我怎么就攤上這事由境∨锬叮” “怎么了?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵虏杰,是天一觀的道長(zhǎng)讥蟆。 經(jīng)常有香客問我,道長(zhǎng)纺阔,這世上最難降的妖魔是什么瘸彤? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮笛钝,結(jié)果婚禮上质况,老公的妹妹穿的比我還像新娘。我一直安慰自己玻靡,他們只是感情好结榄,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著囤捻,像睡著了一般臼朗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上最蕾,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天依溯,我揣著相機(jī)與錄音,去河邊找鬼瘟则。 笑死黎炉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的醋拧。 我是一名探鬼主播慷嗜,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼丹壕!你這毒婦竟也來了庆械?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤菌赖,失蹤者是張志新(化名)和其女友劉穎缭乘,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體琉用,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡堕绩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年策幼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奴紧。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡特姐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出黍氮,到底是詐尸還是另有隱情唐含,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布沫浆,位于F島的核電站捷枯,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏件缸。R本人自食惡果不足惜铜靶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望他炊。 院中可真熱鬧争剿,春花似錦、人聲如沸痊末。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)凿叠。三九已至涩笤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間盒件,已是汗流浹背蹬碧。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留炒刁,地道東北人恩沽。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像翔始,于是被迫代替她去往敵國(guó)和親罗心。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容