公众号后台回复“图书“,了解更多号主新书内容

作者:J哥

来源:菜J学Python

图片来源:蛋壳公寓官网

前言

2020年以来,受疫情冲击、政策监管收紧等多重因素影响,长租公寓可谓路途坎坷。根据中国房地产报不完全统计,今年最近几个月时间里,暴雷的长租公寓累计达到20多家,数十万租客受到影响。

蛋壳公寓,凭借着长租公寓风口,用5年时间,做到了分散式长租公寓第二,仅次于自如。于2020年1月17日在纽约证券交易所正式挂牌上市,成为2020年登陆纽交所的中国第一股。然而,风口退去,加之突如其来的疫情,于近日暴雷,已有很多文章对蛋壳公寓的商业模式、租金贷、管理方式等进行了深入分析。

本文仅从数据角度出发,爬取了蛋壳公寓深圳区域所有在租公寓信息,清洗数据,并进行可视化分析,为大家了解蛋壳公寓提供一个新的视角。后台回复「蛋壳」可获取本文数据分析代码和数据集。

可视化分析

区域分布

通过绘制深圳市蛋壳公寓分布地图,我们可以很直观的看出,蛋壳公寓主要分布在深圳的发展中心以及轴线上,前海中心与福田罗湖中心的公寓租金价格明显高于其他区域。轴线基于便捷的轨道交通串联,周边配套较为齐全,满足了广大年轻白领的租住需求。具体从行政区分布来看,龙岗区虽然整体公寓租金相对更低,但公寓数量高于福田和南山区。蛋壳公寓的分布与贝壳找房较为类似,但贝壳在租房源数量上远高于蛋壳。深圳贝壳租房数据分析可查看本公众号往期原创文章:睡地摊or租房?Python分析深圳租房数据告诉你。从小区分布来看,位于龙岗区的锦荟PARK在租公寓最多,共有83个房源。锦荟PARK周边配套齐全,地铁上盖,靠近大生体育公园,1公里内产业配套有金辉工业园、志华工业园、中和盛世珠宝文化创意创新产业园等,对劳动力具有一定吸引力。同时还有医院、文体广场等,可以满足都市白领生活一站式服务需求。

租金分布

深圳蛋壳公寓平均租金为1911元/月,第一、第二、第三四分位数分别为1530,1870,2192,说明房租还是比较集中的。对深圳蛋壳公寓租金进行分段,我们发现公寓的价格主要集中在1000-2000元/月之间,共计2995个,占比59.71%。其次是2000-3000元/月,数量为1798,占比35.84%。

面积分布

深圳蛋壳公寓面积集中在10㎡以下和10-20㎡,10-20㎡的公寓共有2415个,占比达48.14%,10㎡以下的公寓也不少,数量为2206个,占比43.98%。

户型分布

深圳蛋壳公寓在租的房屋户型大部分为4室1卫,占比高达58.64%,其次是5室1卫,占比18.72%。

楼层分布

从深圳蛋壳公寓所在楼层分布来看,其南山区和福田区的公寓所在楼层相对更高。大多数的公寓分布在10层以下,占比58.59%,40层以上的公寓仅有 42个,占比0.84%。

周边地铁

深圳蛋壳公寓普遍距离地铁较近,平均距离为592米,距离地铁最远的公寓也不到2公里,完全可以步行解决轨道出行问题。

相关性分析

从相关系数表可以看出,深圳蛋壳公寓的面积、周边地铁数对公寓的价格有较大的的影响,相关系数分别为0.54和0.22。蛋壳公寓在进行房屋定价时,对公寓的面积以及公寓的地铁配套有较大权重的考虑。由于深圳蛋壳所有的公寓距离地铁都不到2公里,距离的远近对公寓的价格影响有限。另外,所在楼层也不是蛋壳主要考虑的定价因素。

技术实现

数据来源

蛋壳公寓网页结构相对简单,数据结构统一,简单的url翻页构造即可。本文用request请求到数据,用xpath对返回的数据进行解析,最后以追加模式将数据存储为csv文件。爬虫核心代码如下:

def get_danke(href):time.sleep(random.uniform(0, 1))  #设置延时,避免对服务器产生压力response = requests.get(url=href, headers=headers)if response.status_code == 200:  #部分网页会跳转404,需要做判断res = response.content.decode('utf-8')div = etree.HTML(res)items = div.xpath("/html/body/div[3]/div[1]/div[2]/div[2]")for item in items:house_price=item.xpath("./div[3]/div[2]/div/span/div/text()")[0]house_area=item.xpath("./div[4]/div[1]/div[1]/label/text()")[0].replace('建筑面积:约','').replace('㎡(以现场勘察为准)','')house_id=item.xpath("./div[4]/div[1]/div[2]/label/text()")[0].replace('编号:','')house_type=item.xpath("./div[4]/div[1]/div[3]/label/text()")[0].replace('\n','').replace(' ','').replace('户型:','')house_floor=item.xpath("./div[4]/div[2]/div[3]/label/text()")[0].replace('楼层:','')house_postion_1=item.xpath("./div[4]/div[2]/div[4]/label/div/a[1]/text()")[0]house_postion_2=item.xpath("./div[4]/div[2]/div[4]/label/div/a[2]/text()")[0]house_postion_3=item.xpath("./div[4]/div[2]/div[4]/label/div/a[3]/text()")[0]house_subway=item.xpath("./div[4]/div[2]/div[5]/label/text()")[0]else:house_price = ""house_area = ""house_id = ""house_type = ""house_floor = ""house_postion_1 = ""house_postion_2 = ""house_postion_3 = ""house_subway = ""

数据清洗

导入数据

import pandas as pd
import re
df = pd.read_csv('/菜J学Python/数据分析/蛋壳公寓/sz_danke.csv')
df.sample(10)

数据预览

查看数据信息

df.info()

数据信息

数据切分

#租金分段
df['租金分段'] = pd.cut(df['价格'],[0,1000,2000,3000,4000,1000000],labels=['1000元以下','1000-2000元','2000-3000元','3000-4000元','4000元以上'],right=False)
#面积分段
df['面积分段'] = pd.cut(df['面积'],[0,10,20,30,40,1000000],labels=['10㎡以下','10-20㎡','20-30㎡','30-40㎡','40㎡以上'],right=False)
#楼层分段
df['所在楼层']=df['楼层'].apply(lambda x:x.split('/')[0])
df['所在楼层'] = df['所在楼层'].astype("int")
df['楼层分段'] = pd.cut(df['所在楼层'],[0,10,20,30,40,1000000],labels=['10层以下','10-20层','20-30层','30-40层','40层以上'],right=False)

地铁字段清洗

def get_subway_num(row):subway_num=row.count('号线')return subway_numdef get_subway_distance(row):distance=re.search(r'\d+(?=米)',row)if distance==None:return -1else:return distance.group()
df['地铁数']=df['地铁'].apply(get_subway_num)
df['距离地铁距离']=df['地铁'].apply(get_subway_distance)
df['距离地铁距离']=df['距离地铁距离'].astype("int")

数据可视化

各行政区公寓数量

#柱状图
df3 = df["位置1"].value_counts()
df3 = df3.sort_values(ascending=False)
df3 = df3.round(2)
c = (Bar(init_opts=opts.InitOpts(theme=ThemeType.WALDEN)).add_xaxis(df3.index.to_list()).add_yaxis("",df3.to_list()).set_global_opts(title_opts=opts.TitleOpts(title="各行政区公寓数量",subtitle="数据来源:蛋壳公寓 \t制图:菜J学Python",pos_left = 'left'),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=14)), #更改横坐标字体大小yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=14)), #更改纵坐标字体大小).set_series_opts(label_opts=opts.LabelOpts(font_size=16)))
c.render_notebook()

小区公寓数量TOP10

#条形图
df7 = df["小区"].value_counts()[:10]
df7 = df7.sort_values(ascending=True)
df7 = df7.tail(10)
print(df7.index.to_list())
print(df7.to_list())
c = (Bar(init_opts=opts.InitOpts(theme=ThemeType.WALDEN)).add_xaxis(df7.index.to_list()).add_yaxis("",df7.to_list()).reversal_axis() #X轴与y轴调换顺序.set_global_opts(title_opts=opts.TitleOpts(title="小区公寓数量TOP10",subtitle="数据来源:蛋壳公寓 \t制图:菜J学Python",pos_left = 'left'),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=13)), #更改横坐标字体大小yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=13)), #更改纵坐标字体大小).set_series_opts(label_opts=opts.LabelOpts(font_size=16,position='right')))
c.render_notebook()

蛋壳公寓租金分布

#玫瑰图
df11 = df["租金分段"].value_counts()
df11 = df11.sort_values(ascending=False)
df11 = df11.round(2)
print(df11)
c = (Pie(init_opts=opts.InitOpts(theme=ThemeType.WALDEN)).add("",[list(z) for z in zip(df11.index.to_list(),df11.to_list())],radius=["30%", "70%"],   #圆环的粗细和大小rosetype='area').set_global_opts(legend_opts = opts.LegendOpts(is_show = False),title_opts=opts.TitleOpts(title="蛋壳公寓租金分布",subtitle="数据来源:蛋壳公寓\n制图:菜J学Python",pos_top="0.5%",pos_left = 'left')).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{d}%",font_size=16)))
c.render_notebook()

蛋壳公寓楼层分布

# 漏斗图
count = df['楼层分段'].value_counts() # pd.Series
print(count)
job = list(count.index)
job_count = count.values.tolist()
from pyecharts.charts import Funnelc = (Funnel(init_opts=opts.InitOpts(theme=ThemeType.WALDEN)).add("", [list(i) for i in zip(job,job_count)]).set_global_opts(title_opts=opts.TitleOpts(title="蛋壳公寓楼层分布",subtitle="数据来源:蛋壳公寓\n制图:菜J学Python",pos_top="0.1%",pos_left = 'left'),legend_opts = opts.LegendOpts(is_show = False)).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{d}%",font_size=16))
)
c.render_notebook()

参考文献

1.公众号@地产一条 :谁能拯救蛋壳?
2.公众号@Datawhale:数据项目总结--蛋壳公寓租金分析!
3.知乎@方先生:苏州市蛋壳公寓租房分析
4.天下银保@马嘉辛 :蛋壳公寓深陷流动性危机!房东、租客、银行都慌了,租金贷成“万恶之源”?

◆ ◆ ◆  ◆ ◆
麟哥新书已经在京东上架了,我写了本书:《拿下Offer-数据分析师求职面试指南》,目前京东正在举行100-40活动,大家可以用相当于原价5折的预购价格购买,还是非常划算的:
数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。管理员二维码:猜你喜欢● 卧槽!原来爬取B站弹幕这么简单● 厉害了!麟哥新书登顶京东销量排行榜!● 笑死人不偿命的知乎沙雕问题排行榜
● 用Python扒出B站那些“惊为天人”的阿婆主!● 你相信逛B站也能学编程吗

深圳市蛋壳公寓租房数据分析相关推荐

  1. 被蛋壳租房坑了?来看看深圳市蛋壳公寓租房数据分析

    前言 2020年以来,受疫情冲击.政策监管收紧等多重因素影响,长租公寓可谓路途坎坷.根据中国房地产报不完全统计,今年最近几个月时间里,暴雷的长租公寓累计达到20多家,数十万租客受到影响. 蛋壳公寓,凭 ...

  2. 用Python分析北京蛋壳公寓租房数据

    前言 大家好,我是J哥. 近期,蛋壳公寓"爆雷"事件持续发酵,期间因拖欠房东房租与租客退款,蛋壳公寓陷入讨债风波,全国多地蛋壳公寓办公区域出现大规模解约事件,而作为蛋壳公寓总部所在 ...

  3. 用Python分析北京市蛋壳公寓租房数据

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 近期,蛋壳公寓"爆雷"事件持续发酵,期间因拖欠房东房租与租客退款,蛋壳公寓陷入讨 ...

  4. 连续巨亏3年,深陷舆论风波,资本宠儿蛋壳公寓竟越混越差?

    连续巨亏3年,深陷舆论风波,资本宠儿蛋壳公寓竟越混越差? 出品 l 观点财经 作者 l 木森 2015年成立的长租公寓品牌蛋壳公寓(DNK),算是圈内头部平台之一.只是跟同样属于业内头部平台的自如相比 ...

  5. 数据分析实战项目-蛋壳公寓投诉分析

    摘要:由于今年疫情,加速了长租公寓的暴雷,本人所租的蛋壳公寓也频繁传出各种负面新闻,直到10月初合同到期,不敢再续租了,按约退房!押金退还流程先退到APP内,再提现,APP内显示14个工作日到账,截至 ...

  6. 蛋壳公寓暴雷,一个将租房做成金融的韭菜联合收割机

    loonggg 读完需要 4 分钟 速读仅需 2 分钟 那应该还是在 8 年前,我去北京工作,和大学同学合租,遇到的是黑中介,我们和中介签合同租房子,租期是一年,当然了,那时候没有什么长租概念,也不需 ...

  7. 数据项目总结 -- 蛋壳公寓租金分析!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:牧小熊,华中农业大学,Datawhale原创作者 本文约3000字 ...

  8. 【Python基础】数据项目总结 -- 蛋壳公寓租金分析!

    作者:牧小熊,华中农业大学,Datawhale原创作者 本文约3000字,建议阅读15分钟 审稿人:鱼佬,Datawhale成员,武汉大学硕士,腾讯广告算法大赛冠军选手. 最近爬取了武汉蛋壳公寓的租房 ...

  9. 蛋壳公寓再获5亿美元C轮融资,老虎环球基金、蚂蚁金服联合领投

    3月1日消息,长租公寓运营商蛋壳公寓宣布完成5亿美元C轮融资,此轮融资由老虎环球基金(Tiger Global).蚂蚁金服联合领投,春华资本跟投,同时,愉悦资本.CMC资本.高榕资本等老股东继续跟投. ...

最新文章

  1. Android实现买卖商品小游戏
  2. java如何调用js_java如何调用js方法
  3. Django的model模型
  4. Eclipse配置 Maven 异常处理
  5. 如何用互联网上的广告来赚取广告费——有点吹牛吗?
  6. Codeforces 468C/469E 易错点
  7. vue sleep_vue不常用的知识点的整理
  8. JDBC连接(MySql)数据库步骤,以及查询、插入、删除、更新等十一个处理数据库信息的功能。...
  9. Python库大全,建议收藏留用!
  10. 腾讯人均月薪8万!第一季度财报发布:微信月活数恐怖,游戏平均日赚4亿
  11. cups支持的打印机列表_在Mac上怎样更新打印机软件?
  12. 关于CDC功能的答疑
  13. NSURLSession访问HTTPS网站
  14. Android 性能分析工具介绍
  15. python程序应用经典实例-精心整理!9个 Python 实用案例分享
  16. WPS如何设置快捷键|为设置颜色添加快捷键
  17. Android Adb 连接海马玩模拟器
  18. 关于三菱触摸屏GT Designer3 仿真软件创建工程
  19. 【Linux杂篇】经常登录Linux,用户密码背后的知识了解一下
  20. 找窗口的dataobject,creategroup,对window进行dataobject的赋值

热门文章

  1. Linux免费安装VMware免费版本和CentOs镜像实现Linux环境
  2. 安卓播放器实现后台播放服务
  3. 基于javaweb的课程自动排课系统(java+springboot+html+layui+thymeleaf+redis+mysql)
  4. null是一条神奇的天路
  5. Mysql插入语句之value与values区别
  6. matlab 求相对涡度,涡量流函数法
  7. 关于Reference to 'xxxxx' is ambiguous 错误
  8. element 中input 或者 select 清空无用
  9. 职业经理人需要学习的内容--哈佛MBA课程设置
  10. 哈佛MBA的几个经典讲座