继上一篇安居客二手房的数据进行预处理后,接下来就可以对数据进行可视化。

我们需要用到的库有:

import os
import shutilimport pandas as pd
from matplotlib import pyplot as plt
from pyecharts import Pie

重点介绍!!!!!!

Matplotlib库介绍
plot(kind="绘图类型")
绘图类型:
‘line’ : #折线图
‘bar’ : #条形图
‘barh’ : #横向条形图
‘hist’ : #直方图(数值频率分布)
‘box’ : #箱型图
‘kde’ : #密度图,主要对柱状图添加Kernel 概率密度线
‘density’ : same as ‘kde’
‘area’ : #与x轴所围区域图(面积图)。Stacked=True时,每列必须全部为正或负值,stacked=False时,对数据没有要求
‘pie’ : #饼图。数值必须为正值,需指定Y轴或者subplots=True
‘scatter’ : #散点图。需指定X轴Y轴
‘hexbin’ : hexbin plot#蜂巢图。需指定X轴Y轴

一:

对数据进行可视化之前先要对数据进行分析,发现那些是我们需要的数据,并且数据之间有什么联系,我们可以从中得到什么价值(这是基础的一步也是很重要的一步)

总价、单价、面积、户型、地区,商品房、普通住宅、一梯两户、钢混结构、精装........

  1. 区域分析:是否是中心区域还是偏远区域,分析各个区域的二手房套数多少
  2. 总价与单价分析:分析那个区域的二手房价格高,价格低,反应不同人对价格的心理价格区间,以及可以得出各个地区发展情况,是否位于中心路段
  3. 面积大小分析: 分析是什么样的二手房面积居多,以及地区的面积差异
  4. 房屋用途:分析是什么样的房屋用途最多,主要看普通住宅类型
  5. 电梯:分析该二手房是否有电梯
  6. 朝向:分析朝向是否符合中国建筑的坐北朝南,以及房屋朝向对房屋总价的影响
  7. 建筑类型:分析房屋是塔楼还是板楼,知道房屋开发商喜欢什么类型的房子,以及得出什么的房子建筑是主流
  8. 户型:分析二手房主流户型是什么,可以为不同的人提供不同的需求
  9. 装修情况:对二手房的装修情况分析
  10. 楼层位置:根据对二手房的楼层位置和总价的分析,可以看出低中高层楼房谁更受欢迎,谁的价钱更高
  11. 房屋用途:分析房屋的用途大部分是拿来干什么

这些分析指标就是我们要分析的一些角度

二:

接下来具体对数据进行可视化

(1)这次用了函数来对数据进行读取

if __name__ == "__main__":if os.path.exists("./安居客_处理后.txt"):os.remove("./安居客_处理后.txt")srcfile = "../数据处理/安居客_处理后.txt"dstfile = "./安居客_处理后.txt"shutil.copy(srcfile, dstfile)  # 移动文件print("移动文件 %s -> %s" % (srcfile, dstfile))
'''
读取数据
'''
def getData():data = pd.read_csv("./安居客_处理后.txt", header=0, sep=';', encoding="utf-8")data.columns = ['编号','区县', '片区','小区名称','房屋单价','房屋总价','户型','面积','朝向','装修','建设时间','房屋属性','用途','产权','产权时间','唯一住房','中介公司','挂牌时间','楼层位置','楼层数','首付','月供']#data['房屋单价'] = data['房屋单价'].astype(float)#data['房屋总价'] = data['房屋总价'].astype(int)#data['面积'] = data['面积'].astype(int)#  图表中文显示plt.rcParams['font.sans-serif'] = ['SimHei']  # 步骤一(替换sans-serif字体)plt.rcParams['axes.unicode_minus'] = False  # 步骤二(解决坐标轴负数的负号显示问题)fig, ax = plt.subplots()return data

用def定义函数来获取文件内容(详细解释在代码中的注释中)

(2)接下来介绍3种数据可视化的方法

1.

'''
各区县房源分布情况!!!
柱状图
'''
def dataAnalysis1():data = getData()print(data['区县'].value_counts())#bar  垂直条形图#barh 水平条形图data['区县'].value_counts().plot(kind='bar', color=['green', 'red', 'blue', 'grey', 'pink'], alpha=0.5)plt.title('某市二手房各区、县房源分布信息!', fontsize=15)plt.xlabel('区、县名称', fontsize=15)plt.ylabel('房源数量', fontsize=15)plt.grid(linestyle=":", color="r")#x轴刻度旋转60度plt.xticks(rotation=60)#legend显示图例plt.legend()plt.show()

这是一个柱状图关于各区县房源分布情况

运行结果如下:

2.

'''
房屋总价和总面积的关系图
散点图
'''
def dataAnalysis4():data = getData()#  绘制总面积和总价的散点关系图home_area = data['面积']# print(home_area.head())total_price = data['房屋总价']# print(total_price.head())plt.scatter(home_area, total_price, s=3)plt.title('某市二手房总价和总面积关系', fontsize=15)plt.xlabel('房屋面积', fontsize=15)plt.ylabel('房源总价', fontsize=15)plt.grid(linestyle=":", color="r")plt.show()

这是一个散点图关于房屋总价和总面积的关系图

运行结果如下:

3.

'''
楼层和房源数量的饼图
饼状图
'''
def dataAnalysis8():data = getData()avg_price_louceng = data.groupby('楼层位置').count()['户型']print(avg_price_louceng)x = avg_price_louceng.indexy = avg_price_louceng.valuespie = Pie("楼层和房源数量的饼图")pie.add("", x, y, is_label_show=True)pie.render("pie.html")

这是一个饼图关于楼层和房源数量的关系图

运行结果如下:

以上三种就是对数据可视化进行处理的方法

我们关于对安居客二手房的项目就结束了,以上几篇文章希望对大家有所帮助(如有不足,敬请指正)

源代码如下:

'''
Matplotlib库介绍
plot(kind="绘图类型")
绘图类型:
‘line’ : #折线图
‘bar’ : #条形图
‘barh’ : #横向条形图
‘hist’ : #直方图(数值频率分布)
‘box’ : #箱型图
‘kde’ : #密度图,主要对柱状图添加Kernel 概率密度线
‘density’ : same as ‘kde’
‘area’ : #与x轴所围区域图(面积图)。Stacked=True时,每列必须全部为正或负值,stacked=False时,对数据没有要求
‘pie’ : #饼图。数值必须为正值,需指定Y轴或者subplots=True
‘scatter’ : #散点图。需指定X轴Y轴
‘hexbin’ : hexbin plot#蜂巢图。需指定X轴Y轴
'''
import os
import shutilimport pandas as pd
from matplotlib import pyplot as plt
from pyecharts import Pie#pip uninstall pyecharts
#pip install pyecharts==0.1.9.5'''
读取数据
'''
def getData():data = pd.read_csv("./安居客_处理后.txt", header=0, sep=';', encoding="utf-8")data.columns = ['编号','区县', '片区','小区名称','房屋单价','房屋总价','户型','面积','朝向','装修','建设时间','房屋属性','用途','产权','产权时间','唯一住房','中介公司','挂牌时间','楼层位置','楼层数','首付','月供']#data['房屋单价'] = data['房屋单价'].astype(float)#data['房屋总价'] = data['房屋总价'].astype(int)#data['面积'] = data['面积'].astype(int)#  图表中文显示plt.rcParams['font.sans-serif'] = ['SimHei']  # 步骤一(替换sans-serif字体)plt.rcParams['axes.unicode_minus'] = False  # 步骤二(解决坐标轴负数的负号显示问题)fig, ax = plt.subplots()return data'''
各区县房源分布情况!!!
柱状图
'''
def dataAnalysis1():data = getData()print(data['区县'].value_counts())#bar  垂直条形图#barh 水平条形图data['区县'].value_counts().plot(kind='bar', color=['green', 'red', 'blue', 'grey', 'pink'], alpha=0.5)plt.title('某市二手房各区、县房源分布信息!', fontsize=15)plt.xlabel('区、县名称', fontsize=15)plt.ylabel('房源数量', fontsize=15)plt.grid(linestyle=":", color="r")#x轴刻度旋转60度plt.xticks(rotation=60)#legend显示图例plt.legend()plt.show()'''
各区县房源均价分布情况!!!
柱状图(横)
'''
def dataAnalysis2():data = getData()data.groupby('区县').mean()['房屋单价'].sort_values(ascending=True).plot(kind='barh', color=['r', 'g', 'y', 'b'],alpha=0.5)plt.title('某市二手房各区、县房屋均价分布信息!', fontsize=15)plt.xlabel('房屋均价', fontsize=15)plt.ylabel('区县名称', fontsize=15)plt.grid(linestyle=":", color="r")plt.legend()plt.show()'''
二手房户型情况
柱状图
'''
def dataAnalysis3():data = getData()data['户型'].value_counts().plot(kind='bar', color=['green', 'red', 'blue', 'grey', 'pink'], alpha=0.5)plt.title('二手房房屋户型情况!', fontsize=15)plt.xlabel('房屋户型', fontsize=15)plt.ylabel('房源数量', fontsize=15)plt.grid(linestyle=":", color="r")plt.xticks(rotation=60)plt.legend()plt.show()'''
房屋总价和总面积的关系图
散点图
'''
def dataAnalysis4():data = getData()#  绘制总面积和总价的散点关系图home_area = data['面积']# print(home_area.head())total_price = data['房屋总价']# print(total_price.head())plt.scatter(home_area, total_price, s=3)plt.title('某市二手房总价和总面积关系', fontsize=15)plt.xlabel('房屋面积', fontsize=15)plt.ylabel('房源总价', fontsize=15)plt.grid(linestyle=":", color="r")plt.show()'''
二手房装修情况
柱状图
'''
def dataAnalysis5():data = getData()#value_counts:查看表格某列中有多少个不同值的快捷方法,并计算每个不同值有在该列中有多少重复值。data['装修'].value_counts().plot(kind='bar', color=['green', 'red', 'blue', 'grey', 'pink'], alpha=0.5)plt.title('二手房装修情况的房源分布信息!', fontsize=15)plt.xlabel('装修类型', fontsize=15)plt.ylabel('房源数量', fontsize=15)plt.grid(linestyle=":", color="r")plt.xticks(rotation=60)plt.legend()plt.show()'''
二手房小区建成年份与小区均价分布信息
散点图
'''
def dataAnalysis6XXXX():#(没有采集小区均价数据)data = getData()# 将小区建成时间转成日期并仅提取其中的年份print(data.建设时间)built_year = pd.to_datetime(data.小区建成).dt.year#print(built_year)# 绘制小区建成年限与小区均价的散点分布图plt.scatter(data.小区建成, data['小区均价'].astype(float), s=6)plt.title('某市二手房小区建成年份与均价分布信息!', fontsize=15)plt.xlabel('小区建成年份', fontsize=15)plt.ylabel('小区房屋均价', fontsize=15)plt.grid(linestyle=":", color="r")plt.xticks(rotation=0)plt.show()def ensure_float(x):print(x.index)for indexs in x.index:print(type(x[indexs]))print(x[indexs])#print(int(x[indexs]))'''
楼层与房屋均价关系
柱状图
'''
def dataAnalysis7():data = getData()#print(data["房屋单价"])ensure_float(data["房屋单价"])data.groupby('楼层位置').mean()['房屋单价'].sort_values(ascending=True).plot(kind='bar', color=['green', 'red', 'blue', 'grey', 'pink'], alpha=0.5)plt.title('二手房楼层与房屋均价分布信息!', fontsize=15)plt.xlabel('楼层信息', fontsize=15)plt.ylabel('房屋均价', fontsize=15)plt.grid(linestyle=":", color="r")plt.xticks(rotation=60)plt.legend()plt.show()'''
楼层和房源数量的饼图
饼状图
'''
def dataAnalysis8():data = getData()avg_price_louceng = data.groupby('楼层位置').count()['户型']print(avg_price_louceng)x = avg_price_louceng.indexy = avg_price_louceng.valuespie = Pie("楼层和房源数量的饼图")pie.add("", x, y, is_label_show=True)pie.render("pie.html")if __name__ == "__main__":if os.path.exists("./安居客_处理后.txt"):os.remove("./安居客_处理后.txt")srcfile = "../数据处理/安居客_处理后.txt"dstfile = "./安居客_处理后.txt"shutil.copy(srcfile, dstfile)  # 移动文件print("移动文件 %s -> %s" % (srcfile, dstfile))#dataAnalysis1()#dataAnalysis2()#dataAnalysis3()#dataAnalysis4()#dataAnalysis5()#dataAnalysis6()  #不可运行(未采集小区均价)#dataAnalysis7()dataAnalysis8()

安居客二手房python数据可视化相关推荐

  1. 抓取安居客二手房经纪人数据,python爬虫自动翻页

    为什么80%的码农都做不了架构师?>>>    和链接不一样,安居客网站里面没有找到总页数,可能在json里面有,只是我没有找到. 基于此能不能做网页的循环爬取呢. 能否判断页面读取 ...

  2. python爬取房源数据_python爬取安居客二手房网站数据(实例讲解)

    是小打小闹 哈哈,现在开始正式进行爬虫书写首先,需要分析一下要爬取的网站的结构:作为一名河南的学生,那就看看郑州的二手房信息吧! 在上面这个页面中,我们可以看到一条条的房源信息,从中我们发现了什么,发 ...

  3. python爬取安居客二手房网站数据(转)

    之前没课的时候写过安居客的爬虫,但那也是小打小闹,那这次呢, 还是小打小闹 哈哈,现在开始正式进行爬虫书写 首先,需要分析一下要爬取的网站的结构: 作为一名河南的学生,那就看看郑州的二手房信息吧! 在 ...

  4. python爬取安居客二手房网站数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  5. 使用Python爬取安居客二手房房价数据

    作为一个Python新手,公司突然安排我爬取房价数据,真让人有点头大啊!幸好网上的大佬们经验丰富,给予了很多代码上的帮助.本文代码在网友pythoner111爬虫项目–爬取安居客二手房信息的基础上修改 ...

  6. Scrapy爬取重庆安居客二手房并存入mysql数据库(下)

    上篇中我们获取了重庆的一二级区(Scrapy爬取重庆安居客二手房并存入mysql数据库(上)),这一篇我们根据二级区获取相应的二手房信息. 初始化数据库 创建二手房信息数据库表,house表存放二手房 ...

  7. 菜鸟爬虫——获取安居客二手房信息

    以安居客二手房为例 前言 了解爬虫 爬虫目录结构 爬虫主体代码 items.py 反反爬虫策略 运行爬虫 前言 因为需要一些二手房数据,菜鸟开启了爬虫之路!不过需要注意的是,在爬取数据时,要遵守< ...

  8. 爬虫项目--爬取安居客二手房信息

    爬虫实战(爬取安居客二手房信息-成都天府新区) 环境:python3.6 pycharm bs4库 解析方式:bs4 需求:爬取二手房信息字段(titile,house_type,build_time ...

  9. 爬虫实战-北京链家,安居客二手房的爬取

    链家mobie北京二手房5w多信息抓取,存MongoDB后进行数据可视化 import scrapy from scrapy_redis.spiders import RedisCrawlSpider ...

最新文章

  1. ValueError: urls must start with a leading slash
  2. 传奇的诞生,PHP三位创始人简介
  3. build muduo网络库undefined reference to问题
  4. ubuntu下virtualbox使用u盘
  5. 10个python使用技巧
  6. 读写锁(ReadwriteLock)
  7. Struts2自定义的转换器
  8. netty cpu 占用率 高_交换机CPU使用率高问题定位
  9. 设计灵感|电商美工,年年都能借鉴的新年
  10. 使用Seaborn和Pandas进行数据可视化
  11. linux拷贝文件夹到另一台机器,linux肿么一个文件拷贝到另一个文件夹
  12. HDU1976 Software Version【水题】
  13. PotPlayer优化与最高画质设置(最强本地播放器)
  14. Adapter(适配)
  15. UI设计师行业是做什么的?
  16. Sloth组件之NetRisc.Configuration
  17. 计算机应用精华系统性整理
  18. UVA1616-Caravan Robbers(二分)
  19. 女博士被骗85万 长年泡实验室不知道“徐玉玉”案
  20. 短信接口抓包_[实战] 实现抢票小工具amp;短信通知提醒

热门文章

  1. 为什么三鹿奶粉要加三聚氰胺
  2. 计算机原理系列之八 -------- 可执行文件的PLT和GOT
  3. [Win+Python]使用python接口测试时302重定向的两种处理方法
  4. xshell下载与使用
  5. 关于d2l中multy-head-Attention代码实现的理解
  6. 新库上线 | CnOpenData中国上市公司股吧评论数据
  7. c语言typedef类型定义
  8. antV/L7@1.3.20-」实现北京地图+散点图
  9. 服务器删除登录日志文件,CentOS查看登录日志及其它安全日志 清空删除系统日志的方法...
  10. 2020机械员-通用基础(机械员)证考试及机械员-通用基础(机械员)模拟考试题库