爬了链家二手房数据来告诉你深圳房价到底多恐怖!

27 篇文章 20 订阅
订阅专栏

使用Pyecharts对链家上的深圳二手房信息进行可视化分析,内容包括:

  • 房屋面积与房屋总价散点图分布;
  • 各行政区二手房均价;
  • 均价最贵的10个地段;
  • 户型分布;
  • 标题中最常出现的词;

数据背景

  • 数据来源:链家二手房上深圳的房源信息「后附爬虫代码」;
  • 数量:共采集数据总量***18841***条,数据清洗后***18811***条;
  • 数据字段:
    字段名称解释
    area房屋面积
    area_positon所属行政区「南山/福田等」
    community所属小区
    direction房屋朝向
    elevator有无电梯
    fitment装修情况「精装/简装/其他」
    floorInfo楼层信息「高层/中层」
    hourseType户型「三室两厅等」
    position位置「科技园/香蜜湖等」
    price房屋总价
    title房源信息标题
    unit-price每平米单价

项目内容

准备工作
  • 导入项目所需第三方库以及数据:
import pandas as pd
import pyecharts

data['area'] = data['area'].str.replace(u'平米','')
data['area'] = data['area'].astype('float')
#去掉房屋面积中「平米」并保存为浮点型
data['unit-price'] = data['price']/data['area']
#生成每平方米房屋单价
data = data.round(1)
data.head()

房价整体分布

我们借助散点图来看目前深圳二手房价格的整体分布情况:

scatter = pyecharts.Scatter("总价-面积散点图",'统计时间:2018-9-22')
scatter.add('🏠总价(单位:万元)',data['area'],data['price'],is_legend_show = False, visual_pos = 'right',
            is_visualmap = True,visual_type="color",visual_range=[100, 1000],mark_point=['max'],
           xaxis_name = '面积' , yaxis_name = '总价')
scatter

  • 目前标价最高的一套房子位于深圳湾,面积600平米,价格9800W❗️❗️❗️
  • 红色的点是房屋总价超过1000W的,当然可能这个散点图会存在一点误导,因为1000W以上的房源价格浮动比较大,导致红色部分视觉上占了大部分,实际上我们获取到的1.8W房源信息中,1000W以上的共1994条记录,占比11%,绝大部分的还是集中在500W左右。
  • 所获取到的1.8W条房源信息中整体均价6.4W每平米。
各行政区均价

需要说明一点,我们采集的数据中未包含大鹏新区/光明新区,因为这两个新区房源信息较少,加上pyecharts里面深圳的行政区也未包含这两个新区,所以没将这两个区的数据统计在内:

temp = data.groupby(['area_positon'])['unit-price'].mean().reset_index()
temp = temp.round(1)
attr = list(temp['area_positon'])
value = list(temp['unit-price'])

map = pyecharts.Map("深圳各行政区二手房均价", "统计时间:2018-09-22", width=800, height=600)
map.add(
    "二手房均价(单位:万元)", attr, value, maptype= u"深圳",is_legend_show = False,is_label_show = True,
    is_visualmap=True, visual_text_color="#000",visual_range=[3, 8]
)
map

  • 本来pyecharts的交互优势到了文章页面却反而有点鸡肋了 ,具体均价如下:
行政区二手房均价
南山区8.1万元/平米
坪山区3.6万元/平米
宝安区6.0万元/平米
盐田区4.7万元/平米
福田区7.0万元/平米
罗湖区5.5万元/平米
龙华区5.5万元/平米
龙岗区4.4万元/平米
  • 目前最贵的还是南山区,整体均价8.1W每平米,最便宜的坪山区,均价3.6W每平米;
  • 关内来说,最便宜的是盐田区,均价4.7W每平,不过房源较少;
  • 关外最贵的是宝安区,均价6W,不过宝安区辖区面积大,价格跨度也比较广。
最贵的10个地段

看完了各行政区的均价,我们来看下更具体的,目前深圳房价最贵的10各地段都是什么位置:

temp = data.groupby(['position'])['unit-price'].mean().reset_index()
temp = temp.round(1)
temp = temp.nlargest(10,'unit-price').reset_index()
attr = list(temp['position'])
value = list(temp['unit-price'])

Bar = pyecharts.Bar("深圳房价最高的10个地段", "统计时间:2018-09-22")
Bar.add("每平米均价(单位:万元)", attr, value,mark_point=['max'],is_legend_show = False,is_label_show = True)
Bar

  • 深圳湾共计43套房源,整体均价15.2W每平米,甩开其他地段好几个身位;
  • 唯一属于的关外地段宝安中心,排名第10,均价8.2W
户型分布

户型里面有点凌乱,一些比较奇怪的户型(如8室0厅)就没算在里面,只取了数量前10的户型。

temp = data.groupby(['hourseType'])['unit-price'].count().reset_index()
temp.columns = ['hourseType','counter']
temp = temp.nlargest(10,'counter')


Pie = pyecharts.Pie('户型占比','统计时间:2018-9-22')
Pie.add("🏠🏠", temp['hourseType'], temp['counter'],
             radius=[20, 75], rosetype='radius',
             is_legend_show=False, is_label_show=True)
Pie

  • 三室两厅是在出售的房源中占比最多,为25.9%,这也应该是目前最符合中国家庭的户型分布了;
  • 在深圳如此高昂的房价压迫下,小户型也挺受欢迎,一室一厅,两室一厅也有不小的占比;
词频统计

获取到的标题是房屋中介或者业主在链家上发布房源时填写的标题信息,想要获得关注,一个抓人眼球的标题肯定不能少,透过标题我们也能发现目前买家都会关注哪些信息,我们来看看,标题中最常出现的都是什么词语:

from jieba import posseg as psg
import collections
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

'''
分词部分
'''
word_list = []
stop_words = ['花园','业主','出售']
string =  str(''.join(data['title']))

words = psg.cut(string)
for x in words:
    if len(x.word)==1:
        pass
    elif x.flag == 'x':
        pass
    elif x.word in stop_words:
        pass
    else:
        word_list.append(x.word)

c = collections.Counter(word_list)
attr = []
value = []
for x in c.most_common(10):
    attr.append(x[0])
    value.append(x[1])

'''
柱形图
'''
Bar = pyecharts.Bar("标题中出现频率最高的10个词", "统计时间:2018-09-22")
Bar.add("出现次数", attr, value,mark_point=['max'],is_legend_show = False)
Bar.render
Bar

  • 生成词云
import imageio
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
import matplotlib.pyplot as plt

back_color = imageio.imread('house.jpeg') 
words = ' '.join(word_list)
wc = WordCloud(background_color='white', 
               max_words=5000,  
               mask=back_color, 
               max_font_size=200, 
               font_path="/Users/~/Documents/fonts/SimHei.ttf",  
               random_state=None
               )

wc.generate(words)
image_colors = ImageColorGenerator(back_color)
plt.figure(figsize = (15,8))
plt.imshow(wc.recolor(color_func=image_colors))
plt.axis('off')
plt.show()
wc.to_file('comment.png')

效果如下:

最后

太TM贵了!


附爬虫代码:

# -*- coding: utf-8 -*-

from bs4 import BeautifulSoup  
import requests  
import lxml
import re
import pandas as pd
from tqdm import tqdm
import math

class lianjia():
    def __init__(self):
        print '*******lianjia_spider******'
        print 'Author :     Awesome_Tang'
        print 'Date   :       2018-09-16'
        print 'Version:        Python2.7'
        print '**************************\n'
        self.pattern = re.compile('<div class="info clear">.*?target="_blank">(.*?)</a>.*?class="houseInfo"><span class="houseIcon">.*?target="_blank">(.*?)</a>(.*?)</div>.*?class="positionIcon"></span>(.*?)<a href=.*?target="_blank">(.*?)</a>.*?class="totalPrice"><span>(.*?)</span>万')
        self.house_num_pattern = re.compile(u'共找到<span> (.*?) </span>套深圳二手房')
        self.area_dic = {'罗湖区':'luohuqu',
			            '福田区':'futianqu',
			            '南山区':'nanshanqu',
			            '盐田区':'yantianqu',
			            '宝安区':'baoanqu',
			            '龙岗区':'longgangqu',
			            '龙华区':'longhuaqu',
			            '坪山区':'pingshanqu'}

    def get_info(self,url):
        html = requests.get(url).text
        html = html.encode('utf-8')
        soup=BeautifulSoup(html,'lxml')
        infos=soup.find_all(class_="info clear")
        return infos

    def get_content(self,info,area):
        info_dic = {}
        info = re.findall(self.pattern,str(info))
        info = list(info[0])
        info_dic['title'] = info[0].strip()
        info_dic['community'] = info[1].strip()
        house_list = info[2].split('|')
        if len(house_list) == 6:
            info_dic['hourseType'] = house_list[1].strip()
            info_dic['area'] = house_list[2].strip()
            info_dic['direction'] = house_list[3].strip()
            info_dic['fitment'] = house_list[4].strip()
            info_dic['elevator'] = house_list[5].strip()
        else:
            info_dic['hourseType'] = house_list[1].strip()
            info_dic['area'] = house_list[2].strip()
            info_dic['direction'] = house_list[3].strip()
            info_dic['fitment'] = '其他'
            info_dic['elevator'] = house_list[4].strip()           
        info_dic['floorInfo'] = info[3].strip(' -  ')
        info_dic['position'] = info[4].strip()
        info_dic['price'] = info[5].strip()
        info_dic['area_positon'] = area
        return info_dic

    def run(self):
        data = pd.DataFrame()
        for area in self.area_dic.keys():
            print '>>>> 正在保存%s的二手房信息>>>\n'%area
            url = 'https://sz.lianjia.com/ershoufang/%s/'%self.area_dic[area]
            r = requests.get(url).text
            house_num = re.findall(self.house_num_pattern,r)[0].strip()
            total_page = int(math.ceil(int(house_num)/30.0))
            if total_page >= 100:
                total_page = 100
            else:
                pass
            for page in tqdm(range(total_page)):
                url = 'https://sz.lianjia.com/ershoufang/%s/pg%s/'%(self.area_dic[area],str(page+1))
                infos = self.get_info(url)
                for info in infos:
                    info_dic = self.get_content(info,area)
                    if data.empty:
                        data = pd.DataFrame(info_dic,index=[0])
                    else:
                        data = data.append(info_dic,ignore_index = True)
        data.to_csv('lianjia.csv',encoding = 'utf-8-sig')
        print '>>>> 链家二手房数据已保存❗️❗️❗️'



    

if __name__ == '__main__':
    x = lianjia()
    x.run()

扫码关注哦😯

链家二手房数据分析
mouding12138的博客
09-02 2254
先照着简书夜希晨的数据分析抄了一遍,又自己独立写了一遍,算是对python数据分析的练习吧 首先插入库 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline plt.rcParams['font.sans-serif'] = ['SimHei'] 导入数据并查看 data = pd.read_csv(r'C:\Users\12435\
链家二手房销售数据分析
weixin_45856686的博客
03-20 5900
一、 数据集描述 数据集名称:链家二手房销售数据 数据来源:链家官方网站 数据集简介:此数据集是取的链家网北京市地区的二手房源销售信息数据,此数据集包含一张数据表lianjia 数据集量:3.8W条,30个字段 字段名称:成交价(万)、成交时间 、所在小区、户型、建筑面积、挂牌价格(万)、成交周期(天)、调价(次)、带看(次)、关注(人)、浏览(次)、链家编号、交易权属、挂牌时间、房屋用途、房...
广州链家二手房数据(2017.11.29)
11-29
Python取的广州链家二手房数据,时间是2017年11月29日。
武汉链家二手房数据
06-20
武汉市二手房数据(含经纬度、地址、户型、价格、朝向等)
基于Python Scrapy爬虫框架实现的链家二手房数据取系统的设计与实现 毕业设计论文答辩用 1万+字 共41页.docx
02-13
因此需要实现二手房房源推荐系统来解决用户需求,而房源推荐系统的实现首要就是需要获得足够多的房源信息,所以本毕设通过实现二手房数据取系统来取房源数据,为房源推荐系统提供数据支持。 本系统使用多线程多...
深圳2024年链家二手房数据集和源码
最新发布
05-08
在探讨深圳房地产市场时,链家二手房数据集为我们提供了一个重要的视角。特别是在2024年,随着市场的波动和变化,链家后台的二手房数据成为分析市场趋势的重要参考。 首先,链家二手房数据集包含了丰富的信息,如...
链家深圳二手房数据-2020.04.03
04-20
通过爬虫获取的链家深圳二手房2020.04.03数据,其中包含11个字段,分别area 、title、community、position、tax、total_price、unit_price、hourseType、hourseSize、direction、fitment等字段
链家二手房数据分析2
08-04
链家二手房数据分析2 从链家二手房数据取的代码中,我们可以看到,整个过程可以分为三个步骤:下载页面、解析页面和保存数据。 下载页面是使用Selenium库实现的,通过webdriver.Chrome()函数打开Chrome浏览器,...
深圳房价链家数据分析
kellyshan123的博客
04-18 2301
版权声明:本文为博主原创文章,未经博主允许不得转载。本人介绍:穗穗,高级数据分析师,5年以上数据分析经验,R/Python/SQL,广外经济利用scrapy框架取某房地产中介网站的近3000条房价信息。本文旨在借助R工具(Excel,Python为辅助)来分析对房价与住房面积的关系,并对其进行线性回归分析。-------------------文章结构:------------------1、原...
爬虫多维度抓取链家二手房成交数据到Elasticsearch/MySQL
09-21
通过Python Scrapy链家二手房取样本为近一个月成都二手房成交数据)销售数据传到ES和MySQL程序。可用于ES或MySQL按照行政区域、户型、小区、房龄、挂牌时间等多个维度对成交价格统计分析。
链家房价数据
09-03
对于佛山南海链家数据按不同镇街进行取,有相应的代码和结果
广州链家数据
08-27
通过爬虫获取的链家网广州二手房数据,其中包含位置、户型、价格、关注人数等字段
深圳二手房价分析
qq_23853033的博客
04-23 1634
文章目录前言数据获取数据概览功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 前言 自学数据分析已经三个月了,就想着着手...
成都二手房长啥样 —— 基于链家数据
heibai22的博客
01-17 2088
下面的分析的源数据是从链家网上抓取的成都二手房数据,截至时间2019年1月16日。目的也简单,一个想买房的人关注一下所在城市的房价情况。 需要注意的问题: 只含普通住房, 不含公寓、别墅 链家网上只有成都一、二圈层的二手房信息(缺乏三圈层的数据),共52548条 不同区域下面有重复的商圈,抓取数据时注意去重和商圈的正确归属 商圈直接划分错误,比如犀浦归到了新都 一些较远的区县归属到了相邻的区域内...
数据挖掘基础之数据清洗:用python把“深圳二手房参考价”PDF保存为EXCEL
03-19 924
坑DIE的住建局再一次不限富豪限刚需,公布了深圳市住宅小区二手住房成交参考价格,买房更难,首付更难凑。。。 数据挖掘基础之数据清理:用python深圳二手房参考价PDF保存为EXCEL,以便其他分析工具可以基于此excel做统计分析和画图,比如tableau。 文章目录前言一、明确目标二、使用步骤1.事前处理2.读入数据总结 前言 本文学习机器学习机器学习的基础内容:数据清洗。结合实际生活场景,提升学习乐趣。 深圳住建局再一次不限富豪限刚需,公布了深圳市住宅小区二手住房成交参考价格,该价格以PDF的形
链家二手房价分析
Paradise 的博客
12-05 1496
深圳二手房价分析 —— 纵得广厦千万间,难使天下寒士俱欢颜。 一、问题背景 最近,深圳的一个新楼盘深业中城开盘,备案价高达 13.1 万的豪宅项目,光认筹就需要缴纳 500 万的诚意金,在别的城市已经可以全款购买一套房了。单看新盘的价格,深圳早几年就已经超越北京稳居榜首了。但是最近中国房价行情网的最新数据显示,10 月份深圳二手房均价为 65,364 元/㎡,环比增长 1.07%,意味着深圳的二手...
数据分析项目实战——链家深圳二手房房源数据分析
qq_42241832的博客
03-18 8087
摘要 分析背景 数据来源 分析目标 各行政区的房源总数 柱状图 均价前10的小区 均(总/单)价各区间房源数量 均价前10的地段 不同区域房源占比,户型占比,朝向占比 据 ...
2019上半年深圳二手楼市热度如何?(链家数据取&分析)
richand112233的博客
08-30 1626
文章目录1.多进程取2w+深圳已成交二手房数据2.数据清洗与初探2.1、数据清洗2.2、数据初探3.分析深圳2019上半年二手楼市:3.1、2019上半年深圳二手房成交情况总览:3.2、对比2018/2019上半年楼市,其热度有什么变化?3.3、对比2018/2019上半年楼市,加价/减价成交情况有何变化?3.4、2019上半年哪类房子比较好卖?(成交数量多)3.5、其他4.总结 1.多进程取...
python爬虫链家二手房
07-28
链家二手房爬虫的过程可以按照以下步骤进行: 1. 构造URL:链家网的二手房信息URL是按页码递增的,例如"https://bj.lianjia.com/ershoufang/pg2/"表示第二页的二手房信息。可以通过循环递增页码来获取多页的信息。\...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 【pyecharts | 颜色配置】关于pyecharts中自定义颜色问题详解 29710
  • 【2020东京奥运会】奥运榜单以及各国参赛运动员数据可视化~ 13174
  • 【第七次全国人口普查 | Pyecharts】数据可视化~ 12944
  • 【Pyecharts50例】自定义饼图标签/显示百分比 8802
  • 【数据分析|面试】如何介绍你的项目经历 7751

分类专栏

  • Pandas必知必会 付费 5篇
  • Pyecharts50例 付费 50篇
  • Pyecharts Gallery 付费 14篇
  • Matplotlib&Seaborn 付费 9篇
  • SQL必知必会 5篇
  • Pyecharts问题解决 3篇
  • 数据可视化 27篇
  • 数据分析技能 6篇
  • GIS 1篇
  • 机器学习 2篇
  • Python小项目 14篇
  • 数据分析面试 1篇
  • TensorFlow 1篇

最新评论

  • 【SQL40例】吐血整理,数据分析师入门SQL训练题40例!!

    Liberty812: 升序和降序那两个是不是写差东西呀

  • 【Python可视化】使用Pyecharts进行奥运会可视化分析~

    ζ珊大宝~: 请问最后一个的多个环形图的代码for _, row in t_data.iterrows(): if idx % 2 == 0: x = 30 y = int(idx / 2) * 22 + 18 else: x = 70 y = int(idx / 2) * 22 + 18 idx += 1 pos_x = str(x) + '%' pos_y = str(y) + '%' pie.add( row['Sport'], [[row['region'], row['Event_x']], ['其他国家', row['Event_y'] - row['Event_x']]], center=[pos_x, pos_y], radius=[70, 100], label_opts=new_label_opts())什么意思哇

  • 嗨,介绍一款地理数据可视化神器——keplergl

    GouDX: 不出现地图是啥情况呀

  • 【pyecharts | 颜色配置】关于pyecharts中自定义颜色问题详解

    Penna_a: 请教下Gauge仪表盘颜色设置成渐变色应该怎么操作呢?

  • 【Pyecharts50例】GEO使用外国地图/使用美国地图

    Nemo-Wang: from pyecharts.datasets import register_url报错是为什么啊

最新文章

  • 【SQL教程|01】SQL简介——什么是SQL
  • 【Pyecharts|GEO-Lines】全球航线图的绘制
  • 【Seaborn】组合图表:PairPlot和JointPlot
2022年11篇
2021年85篇
2020年19篇
2019年9篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AwesomeTang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

聚圣源周公解梦梦见撞车宝宝起名要听什么伊朗将军怎么取名商标起名警察叔叔太凶猛属鼠起名子起名字大全起人名大全婚庆公司起名非主流分组名字师德师风培训心得体会教师培训心得网上免费宝宝起名大全至尊神位忠字辈如何起名保险培训公司起名非常父子档殷世航多高起名网站免费测试浴室自杀二十天陶弘景简介22eee袁隆平的事迹介绍50个字决战天灾军团谷姓女孩起名高端大气公司起名的思路2020年9月起名户外公司起名韩姓起名韩姓宝宝起名景字起名字的含意姓凌女孩起名淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化