美文网首页数据-R语言-图表-决策-Linux-Python
R爬虫小白入门:Rvest爬链家网+分析(二)

R爬虫小白入门:Rvest爬链家网+分析(二)

作者: 天善智能 | 来源:发表于2019-03-04 10:32 被阅读40次

    欢迎关注天善智能,我们是专注于商业智能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.各地区房源平均面积

    由图可见,青浦/松江/奉贤等地区,二手房源的面积都是比较大的,而杨浦/闸北/虹口的房屋面积会比较小一些,可能这些区的人口居住密度比较大?静安/黄浦的二手房的平均面积比想象中的要大,这是一件蛮有意思的事情

  1. 房价: 静安/黄浦/徐汇是上海二手房均价最高的三个区,最低的是青浦区

  2. 楼层高度:静安的楼平均最高,其次黄浦,最低的是奉贤

  3. 户型:2室1厅和2室2厅最多,尤其浦东。市区的户型比较丰富。

  4. 平均面积:青浦/松江/奉贤等地区,二手房源的面积都是比较大的,杨浦/闸北/虹口的房屋面积会比较小一些,静安/黄浦区的房源面积没有想象中的小,黄浦区的房源平均面积甚至排到了第四(可能是给有钱人住的23333)

  5. 附上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"))

    往期精彩:

  6. 【3分钟速读】运营到底是干啥的?


  7. R语言基于S3的面向对象编程


  8. R语言信用评分卡:探索性数据分析


  9. R语言中文社区2018年终文章整理(作者篇)

  10. R语言中文社区2018年终文章整理(类型篇)

  11. 公众号后台回复关键字即可学习

    回复 爬虫            爬虫三大案例实战
    回复 Python       1小时破冰入门
    回复 数据挖掘     R语言入门及数据挖掘
    回复 人工智能     三个月入门人工智能
    回复 数据分析师  数据分析师成长之路 
    回复 机器学习     机器学习的商业应用
    回复 数据科学     数据科学实战
    回复 常用算法     常用数据挖掘算法

    相关文章

      网友评论

        本文标题:R爬虫小白入门:Rvest爬链家网+分析(二)

        本文链接:https://www.haomeiwen.com/subject/cpsbuqtx.html