欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定!
对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群,数据爱好者们都在这儿。
作者:汪喵行 R语言中文社区专栏作者
知乎ID:https://www.zhihu.com/people/yhannahwang
前言
上面一章
我们已经成功爬取了链家网的数据。按照同样的方法爬取,又成功爬取了3w条上海二手房源的数据,那么这一章就写写关于上海二手房的分析。用到的软件:R,Tableau
一开始还是在R中画的图,后来觉得不是很好看,所以用tableau。
首先读取文件
1library(ggplot2)
2house_info <- read.csv("house_inf0.csv",stringsAsFactors = FALSE)
1.哪个地方房价最高
在一开始,数据集里的所有的区都是混在一起的,所以要画图,有一种比较笨的方法是把它们都分开,然后算每个区的均值,最后得到了这张图:
很明显,静安/黄浦/徐汇是上海二手房均价最高的三个区。最高的静安区二手房价达到将近10w/平米,最低的是青浦区,大概二手房均价在3.5w/平米左右。
画这张图的时候,我的方法还是比较笨的,但是暂时没想到啥好方法。画图的代码见最后。
在R里面画图没有tableau方便,并且也没有那么好看,所以之后还是用tableau来继续做吧。
2.各区房源所在楼层和房型公布
如图所示,在所有区域的房源中,静安的楼平均最高平均18.25层,其次是黄浦(16.74层),再是长宁(13.67)。最低的楼层是奉贤(6层),闵行以及青浦。看来市中心真的是寸土寸金啊。sigh。
对于房屋所处楼层的方差来说,黄浦,静安,虹口,普陀等区的楼层分布都很不均匀,静安最高二手房楼层为33层,最低为3层,而变化最小的闵行,最高二手房楼层在9.32左右,最低的在5.20左右。
由此可知,越靠近市中心,二手房房源的楼层越高,楼层之间的方差也很大,郊区的二手房源正好与市区的趋势相反。
图中的各种颜色代表了各种房型,这张图可能看的不是很清楚,我们看下一张:
哇知乎这个图的像素真的是渣到爆。
这是一个各地区的房源的户型图,每一个五角星的颜色越深,说明该类户型在该地区越多。这样我们可以直观看见,整个上海的2室1厅和2室2厅是最多的,其中浦东的2室1厅尤其(665个)。
3.各地区房源平均面积
由图可见,青浦/松江/奉贤等地区,二手房源的面积都是比较大的,而杨浦/闸北/虹口的房屋面积会比较小一些,可能这些区的人口居住密度比较大?静安/黄浦的二手房的平均面积比想象中的要大,这是一件蛮有意思的事情
总
结
房价: 静安/黄浦/徐汇是上海二手房均价最高的三个区,最低的是青浦区
楼层高度:静安的楼平均最高,其次黄浦,最低的是奉贤
户型:2室1厅和2室2厅最多,尤其浦东。市区的户型比较丰富。
平均面积:青浦/松江/奉贤等地区,二手房源的面积都是比较大的,杨浦/闸北/虹口的房屋面积会比较小一些,静安/黄浦区的房源面积没有想象中的小,黄浦区的房源平均面积甚至排到了第四(可能是给有钱人住的23333)
附上R画图源代码:
1house_avg <- house_info[,c(4,5)] #取原数据的“房屋所在区域”“单位价格”两个变量
2
3house_aa <- data.frame()
4#算出每个区的平均价
5ave_HP <- sum(house_info[house_info$house_loc=='黄浦',]$house_unitprice)/nrow(house_info[house_info$house_loc=='黄浦',])
6ave_BS <- sum(house_info[house_info$house_loc=='宝山',]$house_unitprice)/nrow(house_info[house_info$house_loc=='宝山',])
7ave_HK <- sum(house_info[house_info$house_loc=='虹口',]$house_unitprice)/nrow(house_info[house_info$house_loc=='虹口',])
8ave_JD <- sum(house_info[house_info$house_loc=='嘉定',]$house_unitprice)/nrow(house_info[house_info$house_loc=='嘉定',])
9ave_JA <- sum(house_info[house_info$house_loc=='静安',]$house_unitprice)/nrow(house_info[house_info$house_loc=='静安',])
10ave_MH <- sum(house_info[house_info$house_loc=='闵行',]$house_unitprice)/nrow(house_info[house_info$house_loc=='闵行',])
11ave_PD <- sum(house_info[house_info$house_loc=='浦东',]$house_unitprice)/nrow(house_info[house_info$house_loc=='浦东',])
12ave_PT <- sum(house_info[house_info$house_loc=='普陀',]$house_unitprice)/nrow(house_info[house_info$house_loc=='普陀',])
13ave_QP <- sum(house_info[house_info$house_loc=='青浦',]$house_unitprice)/nrow(house_info[house_info$house_loc=='青浦',])
14ave_SJ <- sum(house_info[house_info$house_loc=='松江',]$house_unitprice)/nrow(house_info[house_info$house_loc=='松江',])
15ave_XH <- sum(house_info[house_info$house_loc=='徐汇',]$house_unitprice)/nrow(house_info[house_info$house_loc=='徐汇',])
16ave_YP <- sum(house_info[house_info$house_loc=='杨浦',]$house_unitprice)/nrow(house_info[house_info$house_loc=='杨浦',])
17ave_ZB <- sum(house_info[house_info$house_loc=='闸北',]$house_unitprice)/nrow(house_info[house_info$house_loc=='闸北',])
18ave_CN <- sum(house_info[house_info$house_loc=='长宁',]$house_unitprice)/nrow(house_info[house_info$house_loc=='长宁',])
19aver_unit_price <- as.data.frame(c(ave_HP,ave_BS,ave_HK,ave_JD,ave_JA,ave_MH,ave_PD,ave_PT,ave_QP,ave_SJ,ave_XH,ave_YP,ave_ZB,ave_CN))
20names(aver_unit_price)[1]='aver_unit_price'
21location <- as.data.frame(c('黄浦','宝山','虹口','嘉定','静安','闵行','浦东','普陀','青浦','松江','徐汇','杨浦','闸北','长宁'))
22names(location)[1]='location'
23house_aa <- cbind(location,aver_unit_price)
24house_a1 <- house_aa[order(-house_aa$aver_unit_price),]
25#画图
26ggplot(data = house_a1,aes(x=house_a1$location,y=house_a1$aver_unit_price))+
27 geom_col(fill= "dark red",alpha = 0.9)+
28 labs(x="location",y="average_unit_price",
29 title = "Average unit_price for houses around SH")+
30 theme(axis.text.x = element_text(angle = 0,size=11),
31 panel.grid.major=element_blank(),
32 panel.grid.minor=element_blank(),
33 panel.background = element_rect(fill = "gray97"),
34 panel.border=element_rect(fill="transparent",color="light gray"),
35 plot.title = element_text(lineheight = 610,colour = "gray9"))
往期精彩:
【3分钟速读】运营到底是干啥的?
R语言基于S3的面向对象编程
R语言信用评分卡:探索性数据分析
R语言中文社区2018年终文章整理(作者篇)
R语言中文社区2018年终文章整理(类型篇)
公众号后台回复关键字即可学习
回复 爬虫 爬虫三大案例实战
回复 Python 1小时破冰入门
回复 数据挖掘 R语言入门及数据挖掘
回复 人工智能 三个月入门人工智能
回复 数据分析师 数据分析师成长之路
回复 机器学习 机器学习的商业应用
回复 数据科学 数据科学实战
回复 常用算法 常用数据挖掘算法
网友评论