文山市房价可视化分析

毕业刚工作没几个月,就有朋友建议我去买房。作为一个数据狗,对于这种比较大项的支出还是比较慎重的,所以我需要知道:(1)文山的平均房价是多少?(2)该在哪买房?。

为了分析文山市房价的基本情况,作者利用网络爬虫抓取了安居客房天下58同城这几个网站上房价的数据,运用统计相关知识来解答作者的疑虑。

一、分析的思路

前段时间和几个朋友讨论过关于买房的问题,主要讨论的就是该不该买、买不买得起和去哪买得问题。于是就产生了一个想法,分析一下作者工作城市的房价情况。

文山市房价可视化分析_第1张图片
文山市房价分析

1.数据来源

信息时代,只需要我们轻轻点击手机,就可以了解到与生活息息相关的信息。近几年,出现了很多平台方便用户发布和获取房产信息,通过查看站长之家其中比较具有代表性的是安居客房天下58同城

在此次分析中,作者选择安居客房天下58同城的数据作为数据源。

2.分析步骤

  • 数据收集
  • 数据清洗
  • 数据分析
  • 数据展示

3.相关技术

分析过程中涉及到的技术主要包括:

  • Python:数据分析领域的热门语言,主要完成网络爬虫功能抓取数据,以及数据清洗、转换等
  • Excel:微软公司的代表性产品,数据分析中不可或缺的工具
  • Tableau:数据可视化领域排名第一的产品,互联网独角兽公司的核心产品,用于数据探索
  • Echarts:百度公司在数据可视化领域的开源项目,广泛用于各类数据平台
  • 百度地图坐标抓取API:用于地址和坐标之间的相互转换
  • 其他:正则表达式

技术只是手段,解决问题不同的人有不同的方式。不拘泥与技术的实现,解决问题才是关键!

二、分析的过程

分析的思路是比较简单,首先利用网络爬虫抓取58同城、安居客和城市房价网的相关数据,然后对数据进行清洗的转换,得到我们所需要的数据。最后选择适合的可视化方式对数据进行处理,对分析的结果进行直观的展示。

1.数据收集

利用Python(urllib2、Beautiful)抓取网站的相应数据。核心代码如下:

import urllib2
import pandas as pd
from bs4 import BeautifulSoup

# 利用urllib2获取网页源码
def getSoup(url):
    request = urllib2.Request(url)
    reponse = urllib2.urlopen(request)
    contents = reponse.read()
    soup = BeautifulSoup(contents,from_encoding="utf-8")
    return soup

#用BeautifulSoup解析数据    
def getData(url): 
    #调用getSoup函数获取网页源码
    soup = getSoup(url)
    fangjia_row = []
    for tag in soup.find('table',class_='tbimg').find_all('tr'):
        Td_list = tag.find_all('td')
        Title = Td_list[1].a.get_text()
        Address = Td_list[1].find('div',class_='qj-listleft').a.next_sibling
        Address = re.sub(r'\s','',Address)
        DetailInfo = Td_list[1].find('div',class_='qj-listright').get_text()
        DetailInfo = re.sub(r'\s','',DetailInfo)
        fangjia_info = [Title,Address,DetailInfo]
        fangjia_row.append(fangjia_info)
    return ershoufang_row
    
if __name__ == '__main__':
    datalist = []
    #网站URL
    url = 'XXXXXX'
    
    datalist.extend(getData(url))
    fangjia = pd.DataFrame(datalist)
    #将数据写入csv文件中
    fangjia.to_csv('data/fangjiadata.csv',encoding='utf-8')
    

2.数据清洗

这个过程就比较简单了,主要是用Excel对抓取下来的数据进行处理。主要涉及到的字符串提取的几个函数:

(1)LEFT RIGHT函数:

LEFT(text,num_chars)
RIGHT(text,num_chars)

第一个参数text,是文本,是你想要在那提取东西的文本,可以是一个字符串,或是一个单元格。第二个参数chars是想要提取的个数。

(2)MID函数:

MID(text,start_num,num_chars)

第一个参数也是text,它的属性与前面两个是一样的。第二个参数,star_num,也就是要提取的开始字符,第三个参数num_chars是要提取的个数。

3.数据转换

通过上面的两步,得到关于房价的相关数据。比较关键的一步是通过百度地图API将楼盘名转换为经纬度,得到了我们最终可视化需要的数据。

#获取文山市建设家园的经纬度
baiduAPI_url = 'http://api.map.baidu.com/geocoder/v2/?address=建设家园&city=文山市&output=json&pois=1&ak=7E16DB5787c6b9f93dbb6e73c6c05a35'
楼盘 均价 (元/平米) 经度 纬度
建设家园 5778 23.38751484 104.228124
桂名园 5552 23.39578995 104.2380282
金家园小区 5332 23.38297917 104.2370217
盘龙苑 5073 23.35158038 104.2675461
... ... ... ...

三、分析结果

本文的的分析结果基于85个小区的平均房价经纬度

1.文山市房价最贵的10个小区

文山市房价可视化分析_第2张图片
文山房价最贵的10个小区

图示为文山房价最高的10个小区,最贵的小区盘龙谷的房价只需要7000元/平米,均价超过5000元/平米也仅有8个。可以看出文山的房价相对于其他的地级市还是相对比较低的。

2.文山市的平均房价

文山市房价可视化分析_第3张图片
房价的基本分布情

从频率直方图可以看出,文山市的房价主要集中在3000-4500元/平米之间。也验证了朋友和我说的文山的房价差不多就3000元/平米。

3.文山房价的地区分布规律

文山市房价可视化分析_第4张图片
这里写图片描述

文山市是一个依河所建的城市,住房主要集中在盘龙河的两侧,整体成条形。

文山市房价可视化分析_第5张图片
这里写图片描述

四、结束语

简单说一下我的情况,16年7月份毕业,工资税后7000,公司供吃供住,每个月花销在2000左右。工作的这个小城市,房价在3000伤心,对于一个刚毕业的小孩来说,没太多的地方花钱,存起来也是折价,所以说买个房也算是一个比较不错的投资。

你可能感兴趣的:(文山市房价可视化分析)