深圳二手房房价分析及预测

该文分析了深圳二手房房价数据,发现区域、房间数、厅数、地铁站和学校等因素对房价有显著影响。通过数据预处理、特征工程和机器学习模型(如线性回归、支持向量机、XGBoost),建立了房价预测模型,并模拟了特定条件下的房价预测。
  • 分析目标:

  1. 通过处理后的房价数据,筛选对房价有显著影响的特征变量。
  2. 确定特征变量,建立深圳房价预测模型并对假设情景进行模拟
  • 数据预处理 

import pandas as pd
import os
file_path="D:\Python数据分析与挖掘实战\深圳二手房价分析\data"
#读取file_path目录下的所有文件
file_name=os.listdir(file_path)
df=pd.DataFrame()
lis=[]
#使用两种方法读取数据
for i in file_name:
    file=pd.read_excel(os.path.join(file_path,i))
    # lis.append(file)
    df=df.append(file)
# df=pd.concat(lis)
#更改第一列的名字
df=df.rename(columns={'Unnamed: 0':'house_id'})
#查看数据描述
 print(df.describe())

out:

           house_id       roomnum  ...        subway     per_price
count  1.851400e+04  18514.000000  ...  18514.000000  18514.000000
mean   2.280900e+08      2.873339  ...      0.504159      6.118192
std    3.031648e+06      1.040839  ...      0.499996      3.050218
min    4.217338e+06      1.000000  ...      0.000000      1.010100
25%    2.276957e+08      2.000000  ...      0.000000      4.052600
50%    2.284619e+08      3.000000  ...      1.000000      5.246300
75%    2.288307e+08      3.000000  ...      1.000000      7.357400
max    2.289965e+08      9.000000  ...      1.000000     26.396800

[8 rows x 8 columns]


#查看数据信息,是否有缺失值,可以看到总共有10个字段,其中house_id字段是没有用的,我们可以删除

df=df.drop(columns='house_id')

print(df.info())

out:

 #   Column     Non-Null Count  Dtype  
---  ------     --------------  -----  
 0   district   18514 non-null  object 
 1   roomnum    18514 non-null  int64  
 2   hall       18514 non-null  int64  
 3   AREA       18514 non-null  float64
 4   C_floor    18514 non-null  object 
 5   floor_num  18514 non-null  int64  
 6   school     18514 non-null  int64  
 7   subway     18514 non-null  int64  
 8   per_price  18514 non-null  float64
dtypes: float64(2), int64(5), object(2)


#我们可以看到字段中只有每平米的单价,我们可以加一个字段为总价,多一个维度进行分析,总价为面积乘以每平米单价
df['total_price']=df['AREA']*df['per_price']
print(df['total_price'])

out:

0       632.002890
1       879.995700
2       110.000800
3        93.990400
4       395.998200
           ...    
1487    116.000040
1488    119.999383
1489    145.001298
1490    128.999772
1491     80.999928
Name: total_price, Length: 18514, dtype: float64


#查看是否有重复项
print(df.duplicated().sum())

out:

0
area_map={'baoan':'宝安','dapengxinqu':'大鹏新区','futian':'福田','guangming':'光明',
          'longhua':'龙华','luohu':'罗湖','nanshan':'南山','pingshan':'坪山','yantian':'盐田'
          ,'longgang':'龙岗'}
df['district']=df['district'].apply(lambda x : area_map[x])
  •  特征变量分析

         1.district特征变量分析

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值