上节我们获取了广州的房价数据,并存入了MongoDB中

数据展示:

这节我们的目标就是计算出广州最高的房价、最低的房价、平均房价以及每个区的平均房价。

目录:

1、提取数据

2、计算最高的房价、最低的房价、平均房价

3、计算每个区的平均房价

4、数据可视化(和2019年12月的房价数据进行对比)

5、房价涨跌幅度

1、提取数据

从MongoDB中提取的数据是一个游标对象,而每个数据是以字典的形式存储的

需要循环提取数据

def output_mongo(self, city):"""提取数据"""results = collection.find({'city': city})for i in results:analyze = {}analyze['zone'] = i.get('zone')analyze['price'] = i.get('price')yield analyze

这里指定city为广州,数据只要价格和地区名

2、计算最高的房价、最低的房价、平均房价

将output_mongo返回的数据传入analyze_data

def analyze_data(self, data):"""对全城房价数据进行分析,得出平均房价、最高房价、最低房价"""price = ([i['price'] for i in data])a = []for i in price:a.append(i)# 平均值avg_price = sum(a) / len(a)print('平均房价是:' + str(avg_price) + '每平方米')# 最高的价格max_price = max(a)print('该城市最高的房价为' + str(max_price) + '每平方米')# 最低的价格min_price = min(a)print('该城市最低的房价为' + str(min_price) + '每平方米')

先将价格数据提取出来,之后计算最大值、最小值、平均值都很容易了

3、计算每个区的平均房价

将output_mongo返回的数据传入analyze_zone

def analyze_zone(self, data):"""分析同城不同地区的房价"""a = []for i in data:a.append(i)zone_name = []house_price = []for i in a:zone_name.append(i.get('zone'))zone_name = set(zone_name)  # 对地区名进行去重for i in zone_name:price = 0zone_num = 0    # 地区出项的次数for j in a:if j['zone'] == i:zone_num += 1price += j['price']house_price.append(price//zone_num)     # 得到平均房价zone_data_dict = dict(zip(zone_name, house_price))  # 得到地区与价格的字典z = list(zip(list(zone_data_dict), list(zone_data_dict.values())))zone_price_list = sorted(z, key=lambda x: (x[1]))return zone_price_list

analyze_zone方法会将每个地区的房价相加求平均值

4、数据可视化(和2019年12月的房价数据进行对比)

我这里将数据都计算并整理好,房价和地区一一对应

price04 = [16022, 19550, 20176, 22867, 28017, 34064, 47098, 49951, 58837, 68216, 74486]
now_price = [16270, 20131, 21563, 25492, 28666, 34259, 46460, 50081, 65994,  62630, 62358]
zone = ['从化', '花都', '增城', '南沙', '黄埔', '番禺', '白云', '荔湾', '海珠', '越秀', '天河']

怎么对比比较好呢?这里采用柱状图的方式,图例如下:

将需要对比的两组数据放在一起,这样就可以直观的看出差距

代码如下:

import numpy as np
import matplotlib.pyplot as pltprice04 = [16022, 19550, 20176, 22867, 28017, 34064, 47098, 49951, 58837, 68216, 74486]
now_price = [16270, 20131, 21563, 25492, 28666, 34259, 46460, 50081, 65994,  62630, 62358]
zone = ['从化', '花都', '增城', '南沙', '黄埔', '番禺', '白云', '荔湾', '海珠', '越秀', '天河']
x = np.array([i for i in range(0, 33, 3)])
x1 = x + 0.9
x2 = x + 2.1
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.bar(x1, price04, label='去年12月份')
plt.bar(x2, now_price, label='现在')
for i in range(len(x)):plt.text(x1[i], price04[i], price04[i], ha='center')plt.text(x2[i], now_price[i], now_price[i], ha='center')
plt.xticks(x + 1.5, zone)
plt.legend()
plt.show()

我们没有直接将地区名作为x轴,而是将一个数组作为了x轴,但是最后x轴显示的还是地区名,这是因为xticks()方法,我们还是先看看xticks()的源码是如何解释的吧

xticks()方法的ticks参数的意思就是,指定刻度放置x轴的标签,labels这个标签可以覆盖bar()方法设置的x轴标签,上图帮助我们理解,我们试试看如果没有添加labels参数会是什么结果吧,

plt.xticks(x + 1.5, zone)改为plt.xticks(x + 1.5)

图例:

这次x轴的标签就变为一个个数字了(这其实就是x轴的刻度)

通过图我们就能比较直观的看出广州各个区的平均房价在这次疫情中的变化,可以看出天河区、越秀区的房价下降的是比较明显的,海珠区的房价上涨是比较明显的。

5、房价涨跌幅度(可视化)

上面的图只能比较直观的看出涨跌明不明显,但是我不但想知道谁涨了谁跌了,而且还要知道具体的涨跌幅度是多少,这才更容易帮助我分析。

计算方法:涨跌幅 = (现在的房价-去年房价)/去年房价

代码如下:

price04 = [16022, 19550, 20176, 22867, 28017, 34064, 47098, 49951, 58837, 68216, 74486]
now_price = [16270, 20131, 21563, 25492, 28666, 34259, 46460, 50081, 65994,  62630, 62358]
percent = []
for i in range(len(price04)):percent.append(round(((now_price[i] - price04[i])/price04[i]) * 100, 3))
print(percent)

运行结果:

[1.548, 2.972, 6.875, 11.479, 2.316, 0.572, -1.355, 0.26, 12.164, -8.189, -16.282]

可视化展示:

代码如下:

import numpy as np
import matplotlib.pyplot as pltprice04 = [16022, 19550, 20176, 22867, 28017, 34064, 47098, 49951, 58837, 68216, 74486]
now_price = [16270, 20131, 21563, 25492, 28666, 34259, 46460, 50081, 65994,  62630, 62358]
percent = []
for i in range(len(price04)):percent.append(round(((now_price[i] - price04[i])/price04[i]) * 100, 3))
zone = ['从化', '花都', '增城', '南沙', '黄埔', '番禺', '白云', '荔湾', '海珠', '越秀', '天河']
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.bar(zone, percent, color='r', label='涨跌幅度')
for i in range(len(percent)):if percent[i] < 0:plt.text(zone[i], percent[i]-1, percent[i], ha='center')else:plt.text(zone[i], percent[i]+1, percent[i], ha='center')
plt.legend()
plt.show()

运行结果:

从这幅图中我们可以看出在疫情期间只有白云、越秀、天河三个区的房价有所下降,尤其是天河区下降了16.282%,南沙区和海珠区领涨分别涨了11.479%、12.164%

疫情对广州房价的影响相关推荐

  1. 如何采集指定年份的poi_房价关键影响因素分析:从数据采集到建模全过程

    决定房价高低的关键性因素分析 房价数据从采集到建模的详细过程 以宁波为例 作      者:数字567作者简介:作者本人是CDA数据科学家,同时也是宁波校区的副校长本文共计6000字左右,如果不喜欢技 ...

  2. 用python-sklearn做广州房价预测——以此为例说明如何使用python做简单的数据分析

    0 数据 广州市二手房价数据 大概有500条广州市二手房价数据 python数据导入 import numpy as np import pandas as p #画图包导入 import matpl ...

  3. 利用R语言如何画出广州房价地图

    R软件的ggplot包升级以后有绘制地图的新功能,其图形元素主要是通过geom_map来实现.由于系统内maps包所自带的地图数据没有广州市的数据.其它图家地图数据则要从外部导入,本文则尝试从外部导入 ...

  4. 阿里巴巴集团2019年12月份季度业绩公告:3月疫情对财务会有直接影响,增长率会放缓...

    据阿里巴巴 2 月 13 日晚间在业绩发布会上表示,三月疫情对财务会有直接影响,增长率会放缓,不排除是较大幅度的放缓,但是现在还不知道.淘宝.天猫.本地生活服务也可能会出现收入增长为负.复苏曲线要看还 ...

  5. 广州土地市场有所回暖?分析广州房价,看看有什么新发现

    前言 为什么要分析房地产市场?房地产行业具有鲜明的地域特征,从房地产企业角度来讲,城市的选择在一定程度上决定了投资的成败.因此,对一个城市的市场研判就显得至关重要.早在几年前,同样的资金配置到南京和长 ...

  6. 中国解封后,疫情对外贸企业的影响有多大

    2022年12月7日,中国宣布全面解封,正式打开了中国的大门,有人欢喜有人忧.这对外贸企业来说,意味着可以获得更多订单,企业可以越做越好,事实真是如此吗? 一.解封前,我们共同努力 2020年,新冠疫 ...

  7. 疫情对房地产的后期影响:再见已不是从前

    疫情还在继续,峰值何时过去,专家们也给不出具体答案,除了等待,别无选择.写这篇文章,有点为时过早,社会稳定后的样子,才是真切的. 如果你是稳健派,可以选择暂时不读这篇文章.尘埃落地前的所有画面,都只是 ...

  8. 疫情期北京融资信息分析---疫情对北京社会经济影响分析---科技战疫·大数据公益挑战赛---2020北京数据开放创新应用大赛

    目录 1 北京金融疫情 1.1 宏观 1.1.1. 央行"放水" 1.1.2 疫情对三驾马车的影响 1.2 北京国企和大民企融资 1.2.1 金融债 1.2.2 短期融资券-疫情防 ...

  9. 【美团外卖产品报告】一文掌握后疫情时代对产品的影响

    ,基于对互联网产品的热爱,通过30+调研报告分析,梳理了美团外卖如何做到行业龙头的关键路径,同时对产品进行全面梳理及分析,通过本文你可以认识到不一样的美团外卖,包含产品发展历程.竞品对比.疫情背景下的 ...

最新文章

  1. iis6 php5.3 mysql_Win 2003下IIS6+Mysql+php5.2  isapi搭建 升级php5.2到5.3测试 借助fastcgi实现...
  2. openresty开发系列33--openresty执行流程之2重写赋值阶段
  3. pycharm导入(import)报红(出现红色波浪线)解决办法(Mark Directory as —— Sources Root)
  4. linux 有用的命令,linux有用命令(持续更新)
  5. 客户端支持的cookie
  6. windows无法启动oracleremexecservice服务_Windows下MySQL无法启动万能解决方案
  7. .NET 6 Preview5+VS2022实战千万并发秒杀项目,帅爆了(附源码)
  8. latex中report目录_LaTeX目录格式控制
  9. Android在代码中设置drawableLeft(Right/Top/Bottom)
  10. 【maven】maven入门以及maven常用命令
  11. Color Table
  12. mysql查询时有个字段是变量_MySQL UPDATE查询中ID最高且字段等于变量?
  13. TensorFlow实现图像风格迁移
  14. 视频画面大小剪裁操作教程
  15. win7蓝牙怎么连接_win7添加打印机提示windows无法连接怎么办?正确解决方法分享...
  16. ACMoi蓝桥杯刷题网站推荐
  17. 3060Ti显卡,tensorflow2.4-GPU安装
  18. Java Bean 转 Map 的巨坑,注意了!!!
  19. 第十三周 任务四
  20. 51nod - 1204 Parity

热门文章

  1. 【Python】第二章 内置数据类型
  2. 《机器学习实战》学习笔记(三):决策树
  3. JavaScript权威指南读书笔记——JavaScript的扩展
  4. 崩坏3服务器维护2月8号,崩坏3 3.9版本「逐暗星辉」更新维护通知
  5. Cocos2d-x 3.x 图形学渲染系列二十三
  6. 我也说说Emacs吧(1) - Emacs和Vi我们都学
  7. JDK自带的Timer定时器实现每天24点修改数据
  8. JSON-handle 插件增加“去除转义”功能
  9. 批量修改文件后缀名(脚本)
  10. Dockers镜像分层