查看原文
其他

我花了21.7斤人民币,在深圳买一套三居室

李启方 凹凸数据 2021-08-09

前两天刷抖音看到一个视频,一个广东的老大爷去售楼处买房,问售楼处的小姑娘三房的单元要多少斤一套?

没错不是多是钱,是问多少斤

刚开始还以为大爷是来捣乱的,没想到经理最后算出来一套三室大概需要12斤,大爷掏出来秤,直接秤了人民币说来3套......


然,你大爷还是你大爷,广东土豪也太多了吧。

视频搞笑归搞笑,但作为一个严谨的数据人,我对“12斤百元大钞是否能买一套深圳3居室”产生了怀疑,于是我就上网用python爬了链家将近20000套二手房的信息(新开楼盘价格信息难获取且价格不稳定,这里只获取了二手房的),对深圳的房价简单做了个分析,并且借来了俺家邻居的秤,算了个大概

注:文末放链接


python爬取数据


本次爬虫选择的网站为链家:

首先通过模拟 HTTP 请求,自动遍历以上商品展示页中的信息,返回的源码文本中包含标题、行政区域、地铁、户型、面积、朝向、装修、楼层,等字段的信息。然后使用正则表达式或者 css 选择器、xpath 解析各个字段的信息。再进行规整化字段的取值,空值的填充和清除等清洗步骤,获得最终的数据,话不多说,代码如下:
from bs4 import BeautifulSoup
import pandas as pd
from tqdm import tqdm
import math
import requests
import lxml
import re
import time
/opt/conda/lib/python3.6/site-packages/requests/__init__.py:80: RequestsDependencyWarning: urllib3 (1.25.7or chardet (3.0.4) doesn't match a supported version!
  RequestsDependencyWarning)
  
  area_dic = {'
罗湖区':'luohuqu',
            '
福田区':'futianqu',
            '
南山区':'nanshanqu',
            '
盐田区':'yantianqu',
            '
宝安区':'baoanqu',
            '
龙岗区':'longgangqu',
            '
龙华区':'longhuaqu',
            '
坪山区':'pingshanqu'}

headers = {'
User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36',
           '
Referer': 'https://sz.lianjia.com/ershoufang/'}
sess = requests.session()
sess.get('
https://sz.lianjia.com/ershoufang/', headers=headers)
url = '
https://sz.lianjia.com/ershoufang/{}/pg{}/'
def re_match(re_pattern, string, errif=None):
    try:
        return re.findall(re_pattern, string)[0].strip()
    except IndexError:
        return errif
# 新建一个DataFrame存储信息
data = pd.DataFrame()
for key_, value_ in area_dic.items():
    # 获取该行政区下房源记录数
    start_url = '
https://sz.lianjia.com/ershoufang/{}/'.format(value_)
    html = sess.get(start_url).text
    house_num = re.findall('
共找到<span> (.*?) </span>套.*二手房', html)[0].strip()
    print('
{}: 二手房源共计「{}」套'.format(key_, house_num))
    time.sleep(1)
    # 页面限制 每个行政区只能获取最多100页共计3000条房源信息
    total_page = int(math.ceil(min(3000, int(house_num)) / 30.0))
    for i in tqdm(range(total_page), desc=key_):
        html = sess.get(url.format(value_, i+1)).text
        soup = BeautifulSoup(html, '
lxml')
        info_collect = soup.find_all(class_="info clear")
        
        for info in info_collect:
            info_dic = {}
            # 行政区
            info_dic['
area'] = key_
            # 房源的标题
            info_dic['
title'] = re_match('target="_blank">(.*?)</a><!--', str(info))
            # 小区名
            info_dic['
community'] = re_match('xiaoqu.*?target="_blank">(.*?)</a>', str(info))
            # 位置
            info_dic['
position'] = re_match('<a href.*?target="_blank">(.*?)</a>.*?class="address">', str(info))
            # 税相关,如房本满5年
            info_dic['tax'] = re_match('class="taxfree">(.*?)</span>', str(info))
            # 总价
            info_dic['total_price'] = float(re_match('class="totalPrice"><span>(.*?)</span>万', str(info)))
            # 单价
            info_dic['unit_price'] = float(re_match('data-price="(.*?)"', str(info)))
            
            # 匹配房源标签信息,通过|切割
            # 包括面积,朝向,装修等信息
            icons = re.findall('class="houseIcon"></span>(.*?)</div>', str(info))[0].strip().split('|')
            info_dic['hourseType'] = icons[0].strip()
            info_dic['hourseSize'] = float(icons[1].replace('平米', ''))
            info_dic['direction'] = icons[2].strip()
            info_dic['fitment'] = icons[3].strip(
            # 存入DataFrame
            if data.empty:
                data = pd.DataFrame(info_dic,index=[0])
            else:
                data = data.append(info_dic,ignore_index=True)
基本的数据信息如下,一共18906条:


数据可视化分析


原本打算用pyecharts做的,但是想起前两天我做疫情分析时候用的BI工具FineBI,不用写代码,可视化效果还很棒,遂放弃pyecharts,还是打算直接用BI工具做,这里也给你们安利一下,真的很香,看我上次做的疫情分析知道了;
第一步先把爬来的数据导出Excel文件,然后再上传到FineBI中,数据从dataframe输出为Excel文件

数据链接到FineBI:

数据链接完成之后,用FineBI的自助数据集功能清洗一下数据,过滤掉空值和无效数据。下一步进行数据可视化:
1、房源面积-总价散点图

总价最高的是8800万,,那可能是腾讯马总的房子....
可以看出来,深圳的房价是非常贵的,100平的房子都要小1000万,真的是寸土寸金。如果你从毕业开始就进入腾讯或者华为,一路升职,你或许可以靠自己的力量在这里安家。来了就是深圳人,这也可能只是一句口号罢了。
2、各行政区均价
为area创建地理角色,地理单位选择为区/县,然后就生成了area(经度)和area(纬度)两个字段,分别拖到横、纵坐标轴可视化地图就自动生成了,然后再把均价拖动到颜色:


均价最贵的是南山区,整体均价9.2W/平米,最便宜的是坪山区,均价3.5W/平米。百度了一下,南山区拥有最多的名企,最好的医院、学校、商场,也难怪房价高
3、均价最高的10个小区

这个金茂礼都居然均价达到了19.52万,贫穷限制了我的想象,这排名前十的小区,怕是一般人想都不敢想的,但是从链家的房源评价里看,这些小区入住率都还不低,看来深圳还是一座充满机会的城市,梦想还是有可能实现的。
4、均价最高的10个地段

最贵的深圳湾就不说了,深圳重点发展的地区,无敌海景,我要是有钱,我也去买,比上海的黄浦江便宜一点。第十名的园岭均价都达到了9万,看了让人倒吸一口凉气,还是要好好赚钱啊
5、再来看看户型

3室2厅占比最高,其次是2室一厅,整体来看小户型占比还是比较高的,毕竟均价放在那里。
基本房价情况摸清楚了,那么我们再继续上面的问题,在深圳买一套三居室要多少斤人民币?
先拿秤称了一下,一张100元大钞的重量的是1.15g,1斤等于500g,那么1斤百元大钞等于:
500/1.15*100=43478.26元,那么12斤就是:43478.26*12=521739

从上面的分析我们得知深圳均价最低的是坪山区,均价在3万5左右,买一套3室1厅的小三房面积大概在90到100平,我就拿90算 ,一套90平的三房也要:
90*35000=315万,首付3成=94.5万,换算成斤的话,需要94.5/4.3478=21.7斤, 显然大爷那12斤是完全不够的
假象一下,我要在深圳湾买套房子的话......均价15.3万,买一个90平的小三房要1377万=316斤100元的钞票,大概就是两个我这么重.....
不得不说,还是羡慕广东的土著啊,我也想天天靠着收租生活

文中所用房价数据集:

https://alltodata.cowtransfer.com/s/2ca646bbff6640


后台回复「进群」,加入读者交流群~

点击红字积分,可了解积分规则~


积分兑换上新书(阅读原文直达)限时300积分,明天恢复原价,需要的同学也可以直接点击下方链接直接购买

朱小五


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存