赞
踩
分析上海房价和房租,计算租售比;分析上海市人口密度、路网密度、餐饮价格和房价的关系。
1、数据清洗、整合
要求:
① 将“house_rent”、“house_sell”分别读取
② 分别计算平方米建筑面积的月租金、每平方米建筑面积的房价
③ 将数据按照小区名合并
2、计算“房屋售租比”,并做初步判断
要求:
① 计算指标
② 绘制直方图、箱型图看“售租比”的一个数据分布情况
3、上海市人口密度、路网密度、餐饮价格,离市中心距离和“房屋每平米均价”是否有关系呢?
要求:
① 首先,导出整理好的数据,并qgis中绘制空间格网图,查看房屋每平米均价、房屋每平米租金及售租比数据的空间分布
② 第二,空间统计,分别按照格网对人口密度、路网密度、餐饮价格进行指标统计并标准化
③ 第三,加载上海中心点point空间数据,计算每个网格到市中心距离
④ 第四,将空间格网的“房屋每平米均价”按照距市中心的距离排序,并制作散点图,看看能否挖掘出什么信息
4、按照离市中心距离每10km,分别再次判断人口密度、路网密度、餐饮价格和“房屋每平米均价”的相关程度
要求:
① 按照空间距离分别迭代计算三指标和“房屋每平米均价”的关系
② 绘制折线图查看:随着市中心距离增加,不同指标相关系系数变化情况
1.读取数据后去除数据中的空值,然后计算每平米月租金和房价,为了后面的数据计算,由于每个小区的租金和房价差不一般都不会太大,
因此可以根据小区进行分组求租金和房价的均值,以简化计算,然后根据小区名称连接数据,并筛选出每个小区的平均租金,房价和经纬度.
2.房屋的租售比是衡量一个房价水平的重要指标,所以需要查看房屋租售比的分布情况,这里根据清洗整合后的数据绘制房屋租售比的直方图和箱型图.
3.分析上海市人口密度、路网密度、餐饮价格和房价的关系,首先需要获取相应数据,这里可以使用QGIS绘制空间网格图,计算每个网格内的人口密度,
道路密度和平均房价,然后将数据导出,在python中计算各个网格中心点离市中心的距离,再对各指标进行标准化后绘制房价与各个指标的散点图,
来查看房价与人口密度、路网密度、餐饮价格,离市中心距离的相关性,并使用pandas.corr()来计算相关系数
4.数据计算方面可以使用for循环计算每增加10KM人口密度、路网密度、餐饮价格和“房屋每平米均价”的相关系数,最后将计算结果整合成一个dataframe, 查看随距离增加相关系数的变化情况可以绘制折线图,这里可以使用bokeh来绘制。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore')
# 不发出警告
from bokeh.io import output_notebook
output_notebook()
# 导入notebook绘图模块
from bokeh.plotting import figure,show
from bokeh.models import ColumnDataSource
# 导入图表绘制、图标展示模块
# 导入ColumnDataSource模块
import os
os.chdir(r'D:\IT\python数据分析师\项目10')
#读取房源信息数据和租金信息数据
hourse_rent = pd.read_csv('house_rent.csv')
hourse_sell = pd.read_csv('house_sell.csv')
#计算每平方米租金
hourse_rent['rent_area']=hourse_rent['price']/hourse_rent['area']
#删除空值
hourse_rent.dropna(inplace=True)
hourse_sell.dropna(inplace = True)
rent_mean = hourse_rent.groupby('community')[['rent_area']].mean()#租金数据根据社区分组计算均值
sell_mean = hourse_sell.groupby('property_name')[['average_price']].mean()#房源数据根据小区分组计算均值
#筛选出房源小区名称及其经纬度数据
unique_data= hourse_sell[~hourse_sell['property_name'].duplicated()][['property_name','lng','lat']]
price_info = pd.merge(rent_mean,sell_mean,left_index = True,right_index=True) #根据小区名称连接房源数据和租金数据
price_info =pd.merge(price_info,unique_data,left_index =True ,right_on = 'property_name')

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。