数据分析项⽬之:链家⼆⼿房数据分析 数据分析项⽬之:链家⼆⼿房数据分析 项⽬分享⽬的:在学习完Numpy,Pandas,matplotlib后,熟练运⽤它们的最好⽅法就是实践并总结。在下⾯的分享中,我会将每⼀步进⾏ 分析与代码展⽰, 希望能对⼤家有所帮助。 项⽬名称:链家⼆⼿房数据分析 项⽬概述:本项⽬主要利⽤上⾯提到的三个⼯具进⾏数据的处理,从不同的维度对北京各区⼆⼿房市场情况进⾏可视化分析,为后续 数据挖掘建模预测房价打好基础。 分析步骤:⼯具库导⼊--->数据加载--->数据清洗--->数据可视化分析 导包 导包 # 数据分析三剑客 import numpy as np import seaborn as sns import pandas as pd from pandas import Series,DataFrame import matplotlib.pyplot as plt sns.set_style({'font.sans-serif':['simhei','Arial']}) %matplotlib inline # 设置忽略警告 import warnings warnings.filterwarnings('ignore') # 设置全局字体 plt.rcParams['font.sans-serif'] = 'Songti SC' plt.rcParams['axes.unicode_minus'] = False 数据载⼊ 数据载⼊ lj_data = pd.read_csv('./lianjia.csv') display(lj_data.head(),lj_data.shape) 查看数据概况 查看数据概况 display(lj_data.info(),lj_data.describe()) ''' 通过观察: 1. Elevator列存在严重的数据缺失情况 2. Size列最⼩值为2平⽶,最⼤值为1019平⽶,跟据常识,初步判断为异常值 ''' 添加新属性房屋均价( 添加新属性房屋均价(PerPrice) ),并且重新排列列位置 并且重新排列列位置 ''' 观察发现: 1. ID属性对于本次分析没有什么意义,所以可以将其移除; 2. 由于房屋单价分析起来⽐较⽅便,简单使⽤总价/⾯积即可得到,所以增加⼀列PerPrice(只⽤于分析,不是预测特征); 3. 原数据属性的顺序⽐较杂乱,所以可以调整⼀下。 ''' # 添加 PerPrice(单位均价) 列 df = lj_data.copy() df['PerPrice'] = (lj_data['Price']/lj_data['Size']).round(2) # 重新摆放列位置 columns = ['Region','District','Garden','Layout','Floor','Year','Size','Elevator', 'Direction','Renovation','PerPrice','Price'] df = pd.DataFrame(df,columns = columns) # 重新查看数据集 df.head(3) 数据可视化分析 数据可视化分析 1. Region特征分析 特征分析 对于区域特征,我们可以分析不同区域房价和数量的对⽐ 对于区域特征,我们可以分析不同区域房价和数量的对⽐ # 对⼆⼿房区域分组,对⽐⼆⼿房数量和每平⽶房价 df_house_count = df.groupby('Region')['Price'].count().sort_values(ascending = False).to_frame().reset_index() df_house_mean = df.groupby('Region')['PerPrice'].mean().sort_values(ascending = False).to_frame().reset_index() # display(df_house_count.head(2),df_house_mean.head(2)) 绘图 绘图 1 # 创建⼦视图对象 2 f,[ax1,ax2,ax3] = plt.subplots(3,1,figsize = (20,18)) 3 4 # 设置绘图参数 5 sns.barplot(x='Region',y='PerPrice',palette='Blues_d',data=df_house_mean,ax=ax1) 6 ax1.set_title('北京各区⼆⼿房单位平⽶价格对⽐',fontsize=15) 7 ax1.set_xlabel('区域') 8 ax1.set_ylabe
2023-02-23 19:25:29
180KB
文档资料
1