加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

用Python分析北京二手房房价

发布时间:2018-10-26 13:21:18 所属栏目:教程 来源:xiaoyu
导读:数据初探 首先导入要使用的科学计算包numpy,pandas,可视化matplotlib,seaborn,以及机器学习包sklearn。 importpandasaspd importnumpyasnp importseabornassns importmatplotlibasmpl importmatplotlib.pyplotasplt fromIPython.displayimportdisplay plt.
副标题[/!--empirenews.page--]

数据初探

首先导入要使用的科学计算包numpy,pandas,可视化matplotlib,seaborn,以及机器学习包sklearn。

  1. import pandas as pd 
  2. import numpy as np 
  3. import seaborn as sns 
  4. import matplotlib as mpl 
  5.  
  6. import matplotlib.pyplot as plt 
  7. from IPython.display import display 
  8. plt.style.use("fivethirtyeight") 
  9. sns.set_style({'font.sans-serif':['simhei','Arial']}) 
  10. %matplotlib inline 
  11.  
  12.  
  13. # 检查Python版本 
  14. from sys import version_info 
  15. if version_info.major != 3: 
  16.     raise Exception('请使用Python 3 来完成此项目') 

然后导入数据,并进行初步的观察,这些观察包括了解数据特征的缺失值,异常值,以及大概的描述性统计。

  1. # 导入链家二手房数据 
  2. lianjia_df = pd.read_csv('lianjia.csv') 
  3. display(lianjia_df.head(n=2)) 

用Python分析北京二手房房价

初步观察到一共有11个特征变量,Price 在这里是我们的目标变量,然后我们继续深入观察一下。

  1. # 检查缺失值情况 
  2. lianjia_df.info() 

 用Python分析北京二手房房价

发现了数据集一共有23677条数据,其中Elevator特征有明显的缺失值。

  1. lianjia_df.describe() 

 用Python分析北京二手房房价

上面结果给出了特征值是数值的一些统计值,包括平均数,标准差,中位数,最小值,最大值,25%分位数,75%分位数。这些统计结果简单直接,对于初始了解一个特征好坏非常有用,比如我们观察到 Size 特征 的最大值为1019平米,最小值为2平米,那么我们就要思考这个在实际中是不是存在的,如果不存在没有意义,那么这个数据就是一个异常值,会严重影响模型的性能。

当然,这只是初步观察,后续我们会用数据可视化来清晰的展示,并证实我们的猜测。

  1. # 添加新特征房屋均价 
  2. df = lianjia_df.copy() 
  3. df['PerPrice'] = lianjia_df['Price']/lianjia_df['Size'] 
  4.  
  5. # 重新摆放列位置 
  6. columns = ['Region', 'District', 'Garden', 'Layout', 'Floor', 'Year', 'Size', 'Elevator', 'Direction', 'Renovation', 'PerPrice', 'Price'] 
  7. df = pd.DataFrame(df, columns = columns) 
  8.  
  9. # 重新审视数据集 
  10. display(df.head(n=2) 

我们发现 Id 特征其实没有什么实际意义,所以将其移除。由于房屋单价分析起来比较方便,简单的使用总价/面积就可得到,所以增加一个新的特征 PerPrice(只用于分析,不是预测特征)。另外,特征的顺序也被调整了一下,看起来比较舒服。

 用Python分析北京二手房房价

数据可视化分析

Region特征分析

对于区域特征,我们可以分析不同区域房价和数量的对比。

  1. # 对二手房区域分组对比二手房数量和每平米房价 
  2. df_house_count = df.groupby('Region')['Price'].count().sort_values(ascending=False).to_frame().reset_index() 
  3. df_house_mean = df.groupby('Region')['PerPrice'].mean().sort_values(ascending=False).to_frame().reset_index() 
  4.  
  5. f, [ax1,ax2,ax3] = plt.subplots(3,1,figsize=(20,15)) 
  6. sns.barplot(x='Region', y='PerPrice', palette="Blues_d", data=df_house_mean, ax=ax1) 
  7. ax1.set_title('北京各大区二手房每平米单价对比',fontsize=15) 
  8. ax1.set_xlabel('区域') 
  9. ax1.set_ylabel('每平米单价') 
  10.  
  11. sns.barplot(x='Region', y='Price', palette="Greens_d", data=df_house_count, ax=ax2) 
  12. ax2.set_title('北京各大区二手房数量对比',fontsize=15) 
  13. ax2.set_xlabel('区域') 
  14. ax2.set_ylabel('数量') 
  15.  
  16. sns.boxplot(x='Region', y='Price', data=df, ax=ax3) 
  17. ax3.set_title('北京各大区二手房房屋总价',fontsize=15) 
  18. ax3.set_xlabel('区域') 
  19. ax3.set_ylabel('房屋总价') 
  20.  
  21. plt.show() 

用Python分析北京二手房房价

 用Python分析北京二手房房价

用Python分析北京二手房房价

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读