目的

使用scrapy框架爬取租赁信息,对数据进行处理利用python中的seaborn,matplotlib库进行可视化分析,最后查看昌平区待租量排前十小区对应地铁站点,及其平均租房价格。

1.爬虫

使用scrapy框架爬取beike租房信息,将获取的数据存入到MySQL中,其中使用正则匹配出小区的经纬度信息,用于地图可视化分布;

一共获取了26000多条数据,获取时间为19年8月份,获取字段主要有,区县,商圈,小区,居室,面积等,下图为处理后的字段

2.可视化分析

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
#中文正常显示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
#读取数据
df = pd.read_excel(r'./bkroom.xlsx')

2.1、查看待租数据中居室的占比分布

values = df['居室'].value_counts().sort_index()
# print(values)
index = list(values.index)
value = list(values)
fig,ax = plt.subplots()
fig.set_size_inches(9,7)
sns.countplot(df['居室'])
for a,b in zip(index,value):
#     print(a)plt.text(a-1,b,b,ha='center',va='bottom')
plt.show()

其中2居室占比比较多

2.2、查看居室和价格之间的关系

#查看居室与价格之间的关系
fig,ax = plt.subplots()
fig.set_size_inches(9,7)
sns.boxplot(x=df['居室'],y=df['价格'],data=df)
plt.show()

其中1居室和3居室租金超过30万 /月,其中居室与价格之间的异常值可能和面积有关,查看一下在不同的居室下面积与价格之间的关系,分别查看1,2,3,4居室下面积与价格之间的关系

#价格为季付价格,其中1居室有超过10万的,查看了一下数据应该是写字楼出租或者是商用店铺
fig,ax = plt.subplots(2,2)
ax1 = ax[0,0]
ax2 = ax[0,1]
ax3 = ax[1,0]
ax4 = ax[1,1]
axes = [ax1,ax2,ax3,ax4]
fig.set_size_inches(12,12)
dt = df[df['居室']==1]
dt_1 = df[df['居室']==2]
dt_2 = df[df['居室']==3]
dt_3 = df[df['居室']==4]
dts = [dt,dt_1,dt_2,dt_2]
for a,b in zip(dts,axes):sns.scatterplot(x='面积',y='价格',data=a,ax=b)
plt.show()

其中1居室和3居室中面积有大于600平米的,应该是写字楼或者是商铺的租赁,因此价格较高;

2.3区县下待租量分布

fig,ax = plt.subplots()
fig.set_size_inches(10,10)
xq = df['区县'].value_counts().sort_values()
index = list(xq.index)
value = list(xq.values)
qx = pd.DataFrame({'区县':index,'单量':value})
qx.plot.barh(x='区县',y='单量',ax=ax,color='blue',fontsize=12)
plt.legend(loc='right')
for a,b in zip(value,np.arange(0,14,1)):plt.text(a+0.5,b,a,fontsize=12)
plt.show()

朝阳区待租房源相对其他区县遥遥领先;

根据小区经纬度数据,利用FineBI展示了各区县小区待租量的分布图,FineBI在地图可视化展示时相对于python较为简单

3、昌平区租赁行情
查看昌平区下小区待租量大于10的小区

#查看昌平区小区的待租量分布,取前10待租房源对应的地铁线及对应的站点附近对应的房租价格cp = df.loc[df['区县']=='昌平','小区'].value_counts()[:10]
print(cp)
xq_name = list(cp.index)
print(xq_name)
lines = df.loc[df['小区'].isin(xq_name),'地铁线'].value_counts()
zd = df.loc[df['小区'].isin(xq_name),'站点'].value_counts()
print(zd)
print(lines)

昌平区待租量前十小区对应的地铁线及站点

#查看在地铁线附近居室和面积及价格的相关关系
xq_top = df[(~df['地铁线'].isnull())&(df['小区'].isin(xq_name))]
sns.relplot(x='居室',y='价格',hue='站点',data = xq_top)
plt.show()

根据价格与居室之间的关系剔除写字楼或者商用租赁的数据,将1居室大于8000的数据剔除

#剔除掉一居室大于8000的数据然后分析每平方米价格
# print(xq_top[xq_top['居室']==1].index)
lin_price = xq_top.drop((xq_top[xq_top['居室']==1].index) & (xq_top[xq_top['价格']>8000].index))
lin_price['元/平方米'] = lin_price['价格']/lin_price['面积']
#统计每个站台每平方米均值
res = lin_price.groupby('站点')['元/平方米'].mean()
print(res)

根据计算的元/平方米/月的价格,以平西府为例,加入为75元/平方米/月,一居室大概在20平方米左右,就是1500元/月,在平西府1居室整租1500元/月显然价格是不可能的,也就是说以元/平方米/月这种评估存在这较大的误差,那就以局势为单位进行价格的分析

price = lin_price[lin_price['居室']==1].groupby('站点')['价格'].mean().astype('int')
price1 = lin_price[lin_price['居室']==2].groupby('站点')['价格'].mean().astype('int')
price2 = lin_price[lin_price['居室']==3].groupby('站点')['价格'].mean().astype('int')
price3 = lin_price[lin_price['居室']==4].groupby('站点')['价格'].mean().astype('int')
res = [price,price1,price2,price3]
fig =plt.figure(figsize=(12,8))
ax1=fig.add_subplot(221)
ax2=fig.add_subplot(222)
ax3 = fig.add_subplot(223)
ax4 = fig.add_subplot(224)
axs = [ax1,ax2,ax3,ax4]
i = 1
for price,ax in zip(res,axs):ax.bar(list(price.index),list(price.values),width=0.3)ax.set_xlabel('站点-%d居室'%i)i += 1
plt.show()

整租1居室 8号线平西府附近小区平均价格最低为4785元/平方米/月,2居室5号线天通苑附近小区平均价格最低为6033元/平方米/月,3居室为13号线霍营站平均价格为6000元/平方米/月,4居室为5号线天通苑站11000元/平方米/月

python爬虫-北京租房可视化分析相关推荐

  1. Python爬虫以及数据可视化分析

    Python爬虫以及数据可视化分析之Bilibili动漫排行榜信息爬取分析 简书地址:https://www.jianshu.com/u/40ac87350697 简单几步,通过Python对B站番剧 ...

  2. python爬虫及数据可视化分析

    python爬虫及数据可视化分析 1.前言 2.数据爬取 2.1定位到爬取数据 2.2爬虫实现方法 3.数据可视化分析 3.1将短文学网的各类文章做一个统计 3.2对某一类文章进行分析 1.前言 本篇 ...

  3. Python爬虫以及数据可视化分析!

    简单几步,通过Python对B站番剧排行数据进行爬取,并进行可视化分析 源码文件可以参考Github上传的项目:https://github.com/Lemon-Sheep/Py/tree/maste ...

  4. Python爬虫以及数据可视化分析!这才是零基础入门案例!

    简单几步,通过Python对B站番剧排行数据进行爬取,并进行可视化分析 下面,我们开始吧! PS: 作为Python爬虫初学者,如有不正确的地方,望各路大神不吝赐教[抱拳] 本项目将会对B站番剧排行的 ...

  5. Python爬虫以及数据可视化分析之某站热搜排行榜信息爬取分析

    目录 前言 一,确定目标 二,发送请求 三, 解析数据 四, 保存数据 pyecharts进行可视化 "某站"数据排名前10视频类型 "某站"标题标签可视化 & ...

  6. Python爬虫以及数据可视化分析(最新B站番剧排行榜数据)

    本博客将会对B站番剧排行榜的数据进行信息爬取以及数据可视化分析,适应最新的B站网页结构 参考大佬:https://blog.csdn.net/Jacompol/article/details/1116 ...

  7. python爬虫可视化excel_Python爬虫以及数据可视化分析!

    简单几步,通过Python对B站番剧排行数据进行爬取,并进行可视化分析 下面,我们开始吧! PS: 作为Python爬虫初学者,如有不正确的地方,望各路大神不吝赐教[抱拳] 本项目将会对B站番剧排行的 ...

  8. Python爬虫+数据分析+数据可视化(分析《雪中悍刀行》弹幕)

    Python爬虫+数据分析+数据可视化(分析<雪中悍刀行>弹幕) 哔哔一下 爬虫部分 代码部分 效果展示 数据可视化 代码展示 效果展示 视频讲解 福利环节 哔哔一下 雪中悍刀行兄弟们都看 ...

  9. 【计算机专业毕设之基于python猫咪网爬虫大数据可视化分析系统-哔哩哔哩】 https://b23.tv/jRN6MVh

    [计算机专业毕设之基于python猫咪网爬虫大数据可视化分析系统-哔哩哔哩] https://b23.tv/jRN6MVh https://b23.tv/jRN6MVh

  10. python 爬虫及数据可视化展示

    python 爬虫及数据可视化展示 学了有关python爬虫及数据可视化的知识,想着做一些总结,加强自己的学习成果,也能给各位小伙伴一些小小的启发. 1.做任何事情都要明确自己的目的,想要做什么,打算 ...

最新文章

  1. 合伙人分开的一点思考
  2. hdu 5063 不错的小想法题(逆向处理操作)
  3. PDF批量替换文字器免费版
  4. 【视频】vue组件之slot插槽
  5. spark数据处理示例一:分类
  6. percona-toolkit(pt工具)使用总结
  7. SCVMM 2012 R2---添加Hyper-V主机
  8. session的简单理解和使用
  9. font-family常见中文字体对应的英文名称
  10. Scriptcase Crack,PHP Web 开发工具
  11. AI芯片发展的前世今生
  12. Linux之VNC远程桌面安装和使用
  13. Portraiture 3.5.6磨皮滤镜插件适用于Photoshop磨皮美化功能
  14. iOS系统下常用的三方应用URL Scheme值
  15. python项目简历内容-python编程工程师简历模板范文
  16. ToDesk-----个人免费 极致流畅的远程协助软件
  17. 如何查看交换机型号(厂商)
  18. (六)区块的生成、验证及挖矿
  19. 河北pc104计算机,便携PC104军用全加固计算机 ZHK-RC212
  20. 为什么选择DCT而不是DFT

热门文章

  1. uni-app微信小程序配置(三)
  2. 智库说 | 杨宁:从城市管理走向城市治理 大数据将发挥更大作用
  3. 初生牛犊不怕虎之HTML初辨
  4. PyQt6 使用 QAxWidget 打开 IE/Word
  5. 线性回归模型之波士顿房价预测
  6. margin的百分比参照物
  7. wangEditor富文本编辑器自定义图片上传
  8. mysql生成 my.cnf_mysql配置文件my.cnf一键生成工具
  9. 搜狐新闻数据400w+
  10. Can You Really Backdoor Federated Learning