天天看點

資料分析:pandas分析鍊家網二手房資訊

分析鍊家網南京市二手房資訊

鍊家網二手房資料的采集方法參見之前的部落格:資料采集(四):用XPath爬取鍊家網房價資料

總共有3000條二手房資訊記錄。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt 
house=pd.read_csv('house.csv',sep=' ')
house.head()
           
totalprice xiaoqu huxing mianji chaoxiang zhuangxiu dianti guanzhu daikan fabu
156.0 江岸水城 2室2廳 80.85平米 精裝 有電梯 98人關注 共31次帶看 23天以前釋出
1 480.0 龍鳳花園隽鳳園 4室2廳 112.36平米 南 北 簡裝 無電梯 168人關注 共62次帶看 7個月以前釋出
2 238.0 鳳凰西街188号 3室1廳 76.48平米 簡裝 NaN 29人關注 共21次帶看 23天以前釋出
3 148.0 安康村 2室1廳 50.36平米 南 北 簡裝 無電梯 11人關注 共27次帶看 11天以前釋出
4 86.0 萬達紫金明珠 1室1廳 38.64平米 簡裝 NaN 98人關注 共34次帶看 25天以前釋出

發現異常記錄(行)

乍一看資料都很正常,但是處理資料時發現,當“huxing”(戶型)字元中包含“别墅”時,标簽和對應的資料出現了錯位。

bieshu=house[house.huxing.str.contains('别墅')]
bieshu.head()
           
totalprice xiaoqu huxing mianji chaoxiang zhuangxiu dianti guanzhu daikan fabu
60 560.0 翠屏國際香樟苑 聯排别墅 3室2廳 222.81平米 南 北 簡裝 20人關注 共23次帶看 2個月以前釋出
98 1280.0 海德衛城 疊拼别墅 5室2廳 239.76平米 毛坯 28人關注 共22次帶看 3個月以前釋出
156 758.0 愛濤漪水園臨溪苑 聯排别墅 5室3廳 259.18平米 南 北 其他 1人關注 共0次帶看 21天以前釋出
293 700.0 武夷花園 聯排别墅 6室2廳 250.61平米 南 北 精裝 13人關注 共5次帶看 1個月以前釋出
325 574.0 華僑新村紫薇苑 聯排别墅 3室2廳 164.11平米 南 北 簡裝 27人關注 共15次帶看 4個月以前釋出

當然,字段’totalprice’,’xiaoqu’,’guanzhu’,’daikan’,’fabu’中的資料還是正常的

print '記錄中共有别墅%d棟'%bieshu.shape[]
           
記錄中共有别墅19棟
           

價格最高的5棟别墅

bieshu.sort_values('totalprice',ascending=False).head()
           
totalprice xiaoqu huxing mianji chaoxiang zhuangxiu dianti guanzhu daikan fabu
98 1280.0 海德衛城 疊拼别墅 5室2廳 239.76平米 毛坯 28人關注 共22次帶看 3個月以前釋出
2927 1260.0 模範新村 獨棟别墅 4室2廳 186.9平米 南 北 精裝 11人關注 共1次帶看 4個月以前釋出
2060 1249.0 鐘鼎山莊 疊拼别墅 5室2廳 346.71平米 毛坯 17人關注 共12次帶看 3個月以前釋出
472 850.0 山水風華 聯排别墅 3室2廳 175.25平米 南 北 精裝 10人關注 共1次帶看 1個月以前釋出
2636 830.0 山水華門嶺秀苑 聯排别墅 4室2廳 223.1平米 南 北 精裝 20人關注 共8次帶看 3個月以前釋出

價格最低的5棟别墅

bieshu.sort_values('totalprice').head()
           
totalprice xiaoqu huxing mianji chaoxiang zhuangxiu dianti guanzhu daikan fabu
2312 370.0 江南文樞苑竹削館 疊拼别墅 5室2廳 211.98平米 南 北 毛坯 31人關注 共11次帶看 2個月以前釋出
2804 380.0 江南文樞苑竹削館 疊拼别墅 4室2廳 214.96平米 南 北 其他 8人關注 共3次帶看 1個月以前釋出
2500 460.0 瑞景文華 疊拼别墅 4室2廳 184.6平米 其他 45人關注 共6次帶看 4個月以前釋出
1761 500.0 銀城一方山 疊拼别墅 5室2廳 163.37平米 南 北 精裝 0人關注 共0次帶看 11天以前釋出
60 560.0 翠屏國際香樟苑 聯排别墅 3室2廳 222.81平米 南 北 簡裝 20人關注 共23次帶看 2個月以前釋出

删除異常記錄(行)

del_index=bieshu.index
house.drop(del_index,inplace=True)
           
print '現在還剩下%d條記錄'%house.shape[]
           
現在還剩下2981條記錄
           

房價最高的10套二手房

house.sort_values('totalprice',ascending=False).head()
           
totalprice xiaoqu huxing mianji chaoxiang zhuangxiu dianti guanzhu daikan fabu
1338 1220.0 天正濱江花園 4室2廳 260.9平米 南 北 毛坯 有電梯 9人關注 共38次帶看 9個月以前釋出
1366 1220.0 天正濱江花園 4室2廳 260.9平米 南 北 毛坯 有電梯 9人關注 共38次帶看 9個月以前釋出
2442 1200.0 宋都美域錦園 5室3廳 183.4平米 南 北 其他 有電梯 3人關注 共0次帶看 17天以前釋出
1674 1160.0 星雨華府 4室2廳 238.24平米 南 北 精裝 有電梯 6人關注 共1次帶看 14天以前釋出
2995 1150.0 鋒尚國際較高價的電梯大廈 4室3廳 279.8平米 南 北 精裝 有電梯 16人關注 共5次帶看 9個月以前釋出
2278 1100.0 仁恒江灣城三期 4室2廳 182.14平米 南 北 其他 NaN 2人關注 共0次帶看 剛剛釋出
2056 1100.0 天正濱江花園 5室2廳 261.71平米 南 北 毛坯 NaN 0人關注 共10次帶看 6個月以前釋出
2286 1100.0 仁恒江灣城三期 4室2廳 182.14平米 南 北 其他 NaN 2人關注 共0次帶看 剛剛釋出
1799 1058.0 雅居樂花園 5室2廳 262.03平米 東南 其他 有電梯 2人關注 共1次帶看 11天以前釋出
2128 1000.0 仁恒江灣城一期 4室2廳 176.62平米 南 北 精裝 有電梯 20人關注 共20次帶看 7個月以前釋出

房價最低的10套二手房

house.sort_values('totalprice').head()
           
totalprice xiaoqu huxing mianji chaoxiang zhuangxiu dianti guanzhu daikan fabu
2552 65.0 都市公社 1室1廳 40.15平米 簡裝 無電梯 28人關注 共0次帶看 1個月以前釋出
2002 78.0 天地新城天柱座 1室1廳 35平米 精裝 有電梯 8人關注 共8次帶看 14天以前釋出
1446 80.0 甯港一村 2室0廳 39.94平米 南 北 簡裝 NaN 21人關注 共7次帶看 2個月以前釋出
1435 80.0 甯港一村 2室0廳 39.94平米 南 北 簡裝 NaN 21人關注 共7次帶看 2個月以前釋出
2072 82.0 丹佛小鎮 1室0廳 34.87平米 精裝 有電梯 100人關注 共10次帶看 9個月以前釋出
2066 82.0 丹佛小鎮 1室0廳 34.87平米 精裝 有電梯 100人關注 共10次帶看 9個月以前釋出
1788 82.0 萬達紫金明珠 1室0廳 30.19平米 精裝 有電梯 183人關注 共18次帶看 8個月以前釋出
2964 83.0 南方花園B組團 1室1廳 27.84平米 東 西 其他 NaN 6人關注 共1次帶看 9天以前釋出
2333 83.0 托樂嘉單身較高價的電梯大廈 1室0廳 34.06平米 其他 NaN 18人關注 共27次帶看 3個月以前釋出
4 86.0 萬達紫金明珠 1室1廳 38.64平米 簡裝 NaN 98人關注 共34次帶看 25天以前釋出

二手房源最多的10個小區

house['xiaoqu'].value_counts().head()
           
江岸水城           24
天潤城第十街區        22
丹佛小鎮           18
東郊小鎮第四街區       17
威尼斯水城第七街區      16
武夷綠洲品茗苑        16
良城美景家園         16
南京恒大綠洲         15
東渡國際青年城        14
水月秦淮           14
Name: xiaoqu, dtype: int64
           

出現最多的5種戶型

house['huxing'].value_counts().head()
           
3室2廳     813
 2室1廳     713
 2室2廳     616
 3室1廳     370
 4室2廳     176
Name: huxing, dtype: int64
           

變量轉化

“面積”和“關注人數”字段具有數值含義,将其從字元串類型轉換為數值類型

house['mianji']=house['mianji'].str[:-].astype(float)
           
house['guanzhu']=house['guanzhu'].str[:-].astype(int)
           

面積最小的二手房

house.sort_values('mianji').iloc[,:]
           
totalprice           83
xiaoqu        南方花園B組團  
huxing            1室1廳 
mianji            27.84
chaoxiang          東 西 
zhuangxiu            其他
dianti              NaN
guanzhu               6
daikan           共1次帶看 
fabu             9天以前釋出
Name: 2964, dtype: object
           

面積最大的二手房

house.sort_values('mianji',ascending=False).iloc[,:]
           
totalprice         980
xiaoqu        萬科金域藍灣  
huxing           5室3廳 
mianji          323.97
chaoxiang         南 北 
zhuangxiu          毛坯 
dianti             無電梯
guanzhu              5
daikan          共1次帶看 
fabu           13天以前釋出
Name: 1248, dtype: object
           

關注人數最多的10套二手房

house.sort_values('guanzhu',ascending=False).head()
           
totalprice xiaoqu huxing mianji chaoxiang zhuangxiu dianti guanzhu daikan fabu
2359 180.0 鳳凰西街223号 2室2廳 67.78 南 北 精裝 無電梯 698 共80次帶看 一年前釋出
51 90.0 金陵村 1室1廳 42.49 精裝 無電梯 505 共41次帶看 3個月以前釋出
2475 165.0 水西門大街153号 2室2廳 70.25 精裝 無電梯 366 共30次帶看 6個月以前釋出
24 420.0 江南名府 4室2廳 145.07 南 北 精裝 無電梯 355 共76次帶看 4個月以前釋出
2193 112.0 水關橋 2室2廳 45.69 南 北 其他 無電梯 347 共79次帶看 4個月以前釋出
2184 112.0 水關橋 2室2廳 45.69 南 北 其他 無電梯 347 共79次帶看 4個月以前釋出
2187 180.0 南方花園瑞陽居 3室2廳 61.40 簡裝 有電梯 326 共56次帶看 9個月以前釋出
2201 180.0 南方花園瑞陽居 3室2廳 61.40 簡裝 有電梯 326 共56次帶看 9個月以前釋出
652 258.0 百家湖國際花園 3室2廳 104.54 西北 精裝 有電梯 325 共157次帶看 5個月以前釋出
1578 260.0 翠屏灣花園城 3室2廳 116.01 南 北 精裝 無電梯 306 共141次帶看 11個月以前釋出

增加“每平米房價”字段

house['price']=house['totalprice']/house['mianji']
           

二手房平均面積

print '南京市二手房平均面積為%f平方米'%house['mianji'].mean()
           
南京市二手房平均面積為93.175881平方米
           

二手房平均總價

print '南京市二手房平均總價為%f萬元'%house['totalprice'].mean()
           
南京市二手房平均總價為283.182321萬元
           

二手房平均價格

print '南京市二手房平均價格為%f萬元每平米'%house['price'].mean()
           
南京市二手房平均價格為3.046645萬元每平米
           

按照面積分組

%matplotlib inline
house.mianji.hist(bins=)
plt.title("Distribution of area of house")
plt.ylabel('count of house')
plt.xlabel('area')
           
#labels = ['1-50', '51-100', '101-150', '151-200', '201-250', '251-300','301-350']
# 面積分組的labels
bins = range(, , ) # [0, 50, 100, 150, 200, 250, 300, 350]
# 告訴我們bin是哪些
house['mianji_group'] = pd.cut(house.mianji, bins, right=False)
# 按照bin把資料cut下來,并附上labels,做成一個新的column,儲存下來。
           

最普遍的二手房面積

house['mianji_group'].value_counts().head()
           
[80, 90)     395
[90, 100)    388
[60, 70)     380
[70, 80)     338
[50, 60)     279
Name: mianji_group, dtype: int64
           

可見最普遍的二手房面積在50-100平方米之間

print '占比是%f%%'%(*house['mianji_group'].value_counts().head().sum()/len(house))
           
占比是59.711506%
           

不同小區的房價差異

取出現最多的50個社群

xiaoqu_50=house.groupby('xiaoqu').size().sort_values(ascending=False)[:]
           
house_in50xiaoqu=house[house['xiaoqu'].isin(list(xiaoqu_50.index))]
           

按平均總價排序:

house_in50xiaoqu.groupby('xiaoqu').mean()['totalprice'].sort_values().head()
           
xiaoqu
天泰青城苑          131.666667
營苑新寓           157.818182
東郊小鎮第四街區       158.941176
營苑西村           163.375000
王府園小區          183.700000
江岸水城           190.037500
鐘山山莊           191.400000
天潤城第十四街區       192.809091
天潤城第五至七街區      195.454545
丹佛小鎮           199.611111
Name: totalprice, dtype: float64
           

按每平米均價排序:

house_in50xiaoqu.groupby('xiaoqu').mean()['price'].sort_values().head()
           
xiaoqu
華彙康城           2.011065
天潤城第五至七街區      2.046685
江岸水城           2.047492
明發濱江新城三期       2.099873
明發濱江新城一期       2.155085
威尼斯水城第七街區      2.181221
天潤城第十街區        2.257201
翠屏灣花園城         2.265674
天潤城第十四街區       2.338558
天潤城第十二街區       2.346086
Name: price, dtype: float64
           

不同小區各戶型的數量

house_in50xiaoqu_huxingshu=house_in50xiaoqu.groupby('xiaoqu')['huxing'].value_counts()
house_in50xiaoqu_huxingshu.head()
           
xiaoqu     huxing
萬達紫金明珠      2室2廳     5
            3室2廳     5
            1室0廳     1
            1室1廳     1
東方龍湖灣       2室1廳     3
            2室2廳     3
            3室2廳     2
東渡國際青年城     2室1廳     5
            2室2廳     4
            3室2廳     3
Name: huxing, dtype: int64
           
house_in50xiaoqu_huxingshu=house_in50xiaoqu_huxingshu.unstack(fill_value=)
house_in50xiaoqu_huxingshu.head()
           
huxing 1室0廳 1室1廳 2室1廳 2室2廳 3室1廳 3室2廳 4室1廳 4室2廳 4室3廳 5室1廳 5室2廳 5室3廳 6室2廳 6室3廳
xiaoqu
萬達紫金明珠 1 1 5 5
東方龍湖灣 3 3 2
東渡國際青年城 5 4 2 3
東郊小鎮第四街區 7 3 5 1 1
丹佛小鎮 3 7 1 6 1

不同小區最多的戶型

house_in50xiaoqu_huxing=house_in50xiaoqu_huxingshu.apply(lambda x:x[x==x.max()],axis=)
house_in50xiaoqu_huxing.head()
           
1室0廳 2室1廳 2室2廳 3室1廳 3室2廳 4室2廳
xiaoqu
萬達紫金明珠 NaN NaN 5.0 NaN 5.0 NaN
東方龍湖灣 NaN 3.0 3.0 NaN NaN NaN
東渡國際青年城 NaN 5.0 NaN NaN NaN NaN
東郊小鎮第四街區 NaN 7.0 NaN NaN NaN NaN
丹佛小鎮 NaN NaN 7.0 NaN NaN NaN
house_in50xiaoqu_huxing=house_in50xiaoqu_huxing.fillna()
house_in50xiaoqu_huxing.shape
for i in range(house_in50xiaoqu_huxing.shape[]):
    for j in range(house_in50xiaoqu_huxing.shape[]):
        if house_in50xiaoqu_huxing.iloc[i,j]!=:
            print '%s:%s'%(house_in50xiaoqu_huxing.index[i],house_in50xiaoqu_huxing.columns[j])
           
萬達紫金明珠  : 2室2廳 
萬達紫金明珠  : 3室2廳 
東方龍湖灣  : 2室1廳 
東方龍湖灣  : 2室2廳 
東渡國際青年城  : 2室1廳 
東郊小鎮第四街區  : 2室1廳 
丹佛小鎮  : 2室2廳 
亞東國際較高價的電梯大廈  : 3室2廳 
親水灣花園  : 2室2廳 
鳳凰莊  : 2室1廳 
鳳凰花園城靜幽園  : 3室2廳 
華保新寓  : 2室1廳 
華彙康城  : 2室2廳 
南京恒大綠洲  : 4室2廳 
名嘉佳園小區  : 3室2廳 
和燕花苑  : 3室1廳 
墨香山莊  : 3室2廳 
天元吉第城  : 2室2廳 
天元吉第城  : 3室2廳 
天悅花園  : 2室2廳 
天悅花園  : 3室2廳 
天泰青城苑  : 1室0廳 
天潤城第五至七街區  : 2室2廳 
天潤城第十一街區  : 3室2廳 
天潤城第十二街區  : 2室2廳 
天潤城第十二街區  : 3室2廳 
天潤城第十四街區  : 3室2廳 
天潤城第十街區  : 2室2廳 
威尼斯水城第七街區  : 2室2廳 
富麗山莊  : 2室2廳 
小火瓦巷  : 2室1廳 
市政天元城  : 2室2廳 
禦水灣花園  : 2室2廳 
時光澔韻  : 3室2廳 
明發濱江新城一期  : 3室2廳 
明發濱江新城三期  : 4室2廳 
武夷綠洲品茗苑  : 3室2廳 
武夷綠洲觀竹苑  : 2室2廳 
水月秦淮  : 2室2廳 
水月秦淮  : 3室2廳 
江岸水城  : 2室2廳 
王府園小區  : 2室1廳 
白鹭花園鳳栖苑  : 3室1廳 
百家湖國際花園  : 3室2廳 
百家湖西花園倫敦城  : 2室1廳 
美達淺草明苑  : 2室2廳 
翠屏東南  : 3室2廳 
翠屏灣花園城  : 3室2廳 
良城美景家園  : 3室2廳 
莫愁花園牡丹裡  : 2室1廳 
莫愁花園牡丹裡  : 3室1廳 
營苑新寓  : 2室1廳 
營苑西村  : 2室1廳 
誠品城  : 3室2廳 
金王府  : 3室2廳 
鐘山山莊  : 2室1廳 
陽光聚寶山莊  : 2室2廳 
           

對不同戶型的關注度差異

house.groupby('huxing').sum()['guanzhu'].sort_values(ascending=False)
           
huxing
 3室2廳     21734
 2室1廳     17037
 2室2廳     15766
 3室1廳      8619
 4室2廳      3955
 1室1廳      3239
 5室2廳      1033
 1室0廳       789
 5室3廳       423
 4室1廳       352
 4室3廳       345
 2室0廳       212
 6室3廳       192
 6室2廳       188
 3室3廳       141
 5室1廳       105
 3室0廳        87
 1室2廳        73
 6室4廳        17
 2室3廳         4
 5室4廳         2
Name: guanzhu, dtype: int64
           

對不同總價的關注度差異

首先将房價分組

print house['totalprice'].min()
print house['totalprice'].max()
           
65.0
1220.0
           
#labels = ['1-50', '51-100', '101-150', '151-200', '201-250', '251-300','301-350']
# 面積分組的labels
bins = range(, , ) # [0, 50, 100, 150, 200, 250, 300, 350]
# 告訴我們bin是哪些
house['totalprice_group'] = pd.cut(house.totalprice, bins, right=False)
# 按照bin把資料cut下來,并附上labels,做成一個新的column,儲存下來。
           
totalprice_guanzhu=house.groupby('totalprice_group').sum()['guanzhu'].sort_values(ascending=False)
totalprice_guanzhu.head()
           
totalprice_group
[150, 200)    18708
[200, 250)    13190
[250, 300)    11445
[100, 150)     7706
[300, 350)     7062
Name: guanzhu, dtype: int64
           
%matplotlib inline
house.totalprice.hist(bins=len(totalprice_guanzhu))
print len(totalprice_guanzhu)
           
24
           
資料分析:pandas分析鍊家網二手房資訊

繼續閱讀