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

我们需要用到的库有:

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. s:select 使用
  2. Error: unterminated string literal。通常原因是输出字符str中包含换行符导致的。
  3. TortoiseSVN使用帮助和下载
  4. jlink怎么调试linux程序_纯Linux下的 ARM裸机调试环境搭建(GDB + JLink)
  5. 【CodeForces - 1082B】Vova and Trophies (贪心模拟,暴力)
  6. mysql8添加索引_MySQL8.0新特性-新的索引方式
  7. php只显示指定文件类型_PHP 上传时的文件类型
  8. Matlab提取ABAQUS后处理文件inp中的节点数
  9. POJ NOI MATH-7832 最接近的分数
  10. python微信聊天机器人_教你用Python创建微信聊天机器人
  11. DataSet自定义添加table并添加数据
  12. 全协议NFC读写模块 小尺寸 功能强 TTL电平输出 可兼容14443A模块 14443B模块 Felica模块 15693模块 CLRC663读写模块
  13. javascript html注释,javascript html注释
  14. f1c100s 源码_全志 F1C100S/200S Ucos Kile MDK emwin 408M-ARM9内置DDR 源码
  15. grandMA2onPC控制UE4灯光
  16. python ocr文字识别竖排繁体_古籍族谱繁体竖排中文识别图文攻略-千百OCR
  17. 一个高速公路交警的救命忠告
  18. Python编写csdn刷博客数量软件
  19. java delete()_Java File delete()用法及代码示例
  20. java调用高德地图api_JAVA调用高德地图API实践

热门文章

  1. 为摩尔定律续命30年,EUV究竟意味着什么?
  2. openal android 编译,Android OpenAL编译
  3. C# 证件照替换底色、设置背景图
  4. 全国医疗资源排名,各省差距有多大?| DT数说
  5. 用QT制作图片转换成ICO格式 领卓教育
  6. Creo三维模型导出成SolidWorks格式
  7. comtrade 录波在线分析工具
  8. 机械臂运动学逆解 | 机械臂运动学笔记(二)
  9. 计算机早期历史 Early computing
  10. 卡梅隆大学计算机博士毕业,卡梅隆大学你了解吗?