当前位置:   article > 正文

Python 数据分析微专业课程--项目实战09 房价影响因素挖掘_python房价影响因素挖掘

python房价影响因素挖掘

1.项目说明

分析上海房价和房租,计算租售比;分析上海市人口密度、路网密度、餐饮价格和房价的关系。

2.项目具体要求

1、数据清洗、整合
要求:
① 将“house_rent”、“house_sell”分别读取
② 分别计算平方米建筑面积的月租金、每平方米建筑面积的房价
③ 将数据按照小区名合并

2、计算“房屋售租比”,并做初步判断
要求:
① 计算指标
② 绘制直方图、箱型图看“售租比”的一个数据分布情况

3、上海市人口密度、路网密度、餐饮价格,离市中心距离和“房屋每平米均价”是否有关系呢?
要求:
① 首先,导出整理好的数据,并qgis中绘制空间格网图,查看房屋每平米均价、房屋每平米租金及售租比数据的空间分布
② 第二,空间统计,分别按照格网对人口密度、路网密度、餐饮价格进行指标统计并标准化
③ 第三,加载上海中心点point空间数据,计算每个网格到市中心距离
④ 第四,将空间格网的“房屋每平米均价”按照距市中心的距离排序,并制作散点图,看看能否挖掘出什么信息

4、按照离市中心距离每10km,分别再次判断人口密度、路网密度、餐饮价格和“房屋每平米均价”的相关程度
要求:
① 按照空间距离分别迭代计算三指标和“房屋每平米均价”的关系
② 绘制折线图查看:随着市中心距离增加,不同指标相关系系数变化情况

3.实现思路:

1.读取数据后去除数据中的空值,然后计算每平米月租金和房价,为了后面的数据计算,由于每个小区的租金和房价差不一般都不会太大,
因此可以根据小区进行分组求租金和房价的均值,以简化计算,然后根据小区名称连接数据,并筛选出每个小区的平均租金,房价和经纬度.

2.房屋的租售比是衡量一个房价水平的重要指标,所以需要查看房屋租售比的分布情况,这里根据清洗整合后的数据绘制房屋租售比的直方图和箱型图.

3.分析上海市人口密度、路网密度、餐饮价格和房价的关系,首先需要获取相应数据,这里可以使用QGIS绘制空间网格图,计算每个网格内的人口密度,
道路密度和平均房价,然后将数据导出,在python中计算各个网格中心点离市中心的距离,再对各指标进行标准化后绘制房价与各个指标的散点图,
来查看房价与人口密度、路网密度、餐饮价格,离市中心距离的相关性,并使用pandas.corr()来计算相关系数

4.数据计算方面可以使用for循环计算每增加10KM人口密度、路网密度、餐饮价格和“房屋每平米均价”的相关系数,最后将计算结果整合成一个dataframe, 查看随距离增加相关系数的变化情况可以绘制折线图,这里可以使用bokeh来绘制。

4.实现过程:

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')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/333223
推荐阅读
相关标签
  

闽ICP备14008679号