日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

疫情对广州房价的影响

發(fā)布時(shí)間:2023/12/8 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 疫情对广州房价的影响 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

上節(jié)我們獲取了廣州的房?jī)r(jià)數(shù)據(jù),并存入了MongoDB中

數(shù)據(jù)展示:


這節(jié)我們的目標(biāo)就是計(jì)算出廣州最高的房?jī)r(jià)、最低的房?jī)r(jià)、平均房?jī)r(jià)以及每個(gè)區(qū)的平均房?jī)r(jià)。

目錄:

1、提取數(shù)據(jù)

2、計(jì)算最高的房?jī)r(jià)、最低的房?jī)r(jià)、平均房?jī)r(jià)

3、計(jì)算每個(gè)區(qū)的平均房?jī)r(jià)

4、數(shù)據(jù)可視化(和2019年12月的房?jī)r(jià)數(shù)據(jù)進(jìn)行對(duì)比)

5、房?jī)r(jià)漲跌幅度



1、提取數(shù)據(jù)

從MongoDB中提取的數(shù)據(jù)是一個(gè)游標(biāo)對(duì)象,而每個(gè)數(shù)據(jù)是以字典的形式存儲(chǔ)的

需要循環(huán)提取數(shù)據(jù)

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

這里指定city為廣州,數(shù)據(jù)只要價(jià)格和地區(qū)名


2、計(jì)算最高的房?jī)r(jià)、最低的房?jī)r(jià)、平均房?jī)r(jià)

將output_mongo返回的數(shù)據(jù)傳入analyze_data

def analyze_data(self, data):"""對(duì)全城房?jī)r(jià)數(shù)據(jù)進(jìn)行分析,得出平均房?jī)r(jià)、最高房?jī)r(jià)、最低房?jī)r(jià)"""price = ([i['price'] for i in data])a = []for i in price:a.append(i)# 平均值avg_price = sum(a) / len(a)print('平均房?jī)r(jià)是:' + str(avg_price) + '每平方米')# 最高的價(jià)格max_price = max(a)print('該城市最高的房?jī)r(jià)為' + str(max_price) + '每平方米')# 最低的價(jià)格min_price = min(a)print('該城市最低的房?jī)r(jià)為' + str(min_price) + '每平方米')

先將價(jià)格數(shù)據(jù)提取出來(lái),之后計(jì)算最大值、最小值、平均值都很容易了


3、計(jì)算每個(gè)區(qū)的平均房?jī)r(jià)

將output_mongo返回的數(shù)據(jù)傳入analyze_zone

def analyze_zone(self, data):"""分析同城不同地區(qū)的房?jī)r(jià)"""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) # 對(duì)地區(qū)名進(jìn)行去重for i in zone_name:price = 0zone_num = 0 # 地區(qū)出項(xiàng)的次數(shù)for j in a:if j['zone'] == i:zone_num += 1price += j['price']house_price.append(price//zone_num) # 得到平均房?jī)r(jià)zone_data_dict = dict(zip(zone_name, house_price)) # 得到地區(qū)與價(jià)格的字典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方法會(huì)將每個(gè)地區(qū)的房?jī)r(jià)相加求平均值


4、數(shù)據(jù)可視化(和2019年12月的房?jī)r(jià)數(shù)據(jù)進(jìn)行對(duì)比)

我這里將數(shù)據(jù)都計(jì)算并整理好,房?jī)r(jià)和地區(qū)一一對(duì)應(yīng)

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 = ['從化', '花都', '增城', '南沙', '黃埔', '番禺', '白云', '荔灣', '海珠', '越秀', '天河']

怎么對(duì)比比較好呢?這里采用柱狀圖的方式,圖例如下:

將需要對(duì)比的兩組數(shù)據(jù)放在一起,這樣就可以直觀的看出差距

代碼如下:

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='現(xiàn)在') 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()

我們沒有直接將地區(qū)名作為x軸,而是將一個(gè)數(shù)組作為了x軸,但是最后x軸顯示的還是地區(qū)名,這是因?yàn)閤ticks()方法,我們還是先看看xticks()的源碼是如何解釋的吧

xticks()方法的ticks參數(shù)的意思就是,指定刻度放置x軸的標(biāo)簽,labels這個(gè)標(biāo)簽可以覆蓋bar()方法設(shè)置的x軸標(biāo)簽,上圖幫助我們理解,我們?cè)囋嚳慈绻麤]有添加labels參數(shù)會(huì)是什么結(jié)果吧,

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

圖例:

這次x軸的標(biāo)簽就變?yōu)橐粋€(gè)個(gè)數(shù)字了(這其實(shí)就是x軸的刻度)

通過(guò)圖我們就能比較直觀的看出廣州各個(gè)區(qū)的平均房?jī)r(jià)在這次疫情中的變化,可以看出天河區(qū)、越秀區(qū)的房?jī)r(jià)下降的是比較明顯的,海珠區(qū)的房?jī)r(jià)上漲是比較明顯的。


5、房?jī)r(jià)漲跌幅度(可視化)

上面的圖只能比較直觀的看出漲跌明不明顯,但是我不但想知道誰(shuí)漲了誰(shuí)跌了,而且還要知道具體的漲跌幅度是多少,這才更容易幫助我分析。

計(jì)算方法:漲跌幅 = (現(xiàn)在的房?jī)r(jià)-去年房?jī)r(jià))/去年房?jī)r(jià)

代碼如下:

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)

運(yùn)行結(jié)果:

[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()

運(yùn)行結(jié)果:

從這幅圖中我們可以看出在疫情期間只有白云、越秀、天河三個(gè)區(qū)的房?jī)r(jià)有所下降,尤其是天河區(qū)下降了16.282%,南沙區(qū)和海珠區(qū)領(lǐng)漲分別漲了11.479%、12.164%

總結(jié)

以上是生活随笔為你收集整理的疫情对广州房价的影响的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。