ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

机器学习-分析北京二手房价格

2022-07-14 19:04:36  阅读:119  来源: 互联网

标签:False 机器 df 学习 二手房 sns ax import Renovation


#导入库
import numpy as np
import pandas as pd
import random
from datetime import datetime
from matplotlib import pyplot as plt
import seaborn as sns
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import PolynomialFeatures
from sklearn.tree import DecisionTreeRegressor
from sklearn.linear_model import Lasso
from sklearn.ensemble import RandomForestRegressor
%matplotlib inline
import warnings
warnings.filterwarnings('ignore')
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

 

df=pd.read_csv('北京链家.csv')
df.head()
df1=df.dropna()
df1.drop(columns=['District','Garden','Id','Year','Direction','Layout'],inplace=True)

 




df.info()
#对数据中NAN进行处理
df['Elevator'].fillna('无电梯',inplace=True)
#.drop_duplicates(inplace=True)数据去重,Ture表示直接在原数据上删除重复项
#重新set初值
df.drop_duplicates(inplace=True)
df.reset_index(drop=True, inplace=True)
#画个箱线图,看数据分布情况
fig,ax = plt.subplots(1,2,figsize=(16,6))
df.boxplot(column=['Price'], flierprops={'markeredgecolor':'red', 'markersize':4}, ax=ax[0])
df.boxplot(column=['Size'], flierprops={'markeredgecolor':'red', 'markersize':4}, ax=ax[1])
#去除掉大于1200的房屋,由于参考价值并不是很大
df.drop(index = df[df['Price'] > 1200].index, inplace=True)
df.info()
#探究在售数量和均价的关系
#画布,可视化和修改图的参数
fig,ax = plt.subplots(2,1,figsize=(30,18))
x = df['Region'].unique()

y0 = df.groupby(by=['Region']).size().sort_values(ascending=False)
sns.barplot(x,y0,ax=ax[0],palette='BuPu_r')
ax[0].set_title('北京各区二手房在售数量')
ax[0].title.set_size(35)
#groupby 按照Region和price的平均值排序,其中横坐标为Region
y1 = df.groupby(by=['Region'])['Price'].mean().sort_values(ascending=False)
sns.barplot(x,y1,ax=ax[1],palette='Blues_r')
ax[1].set_title('北京各区二手房在售均价')
ax[1].title.set_size(35)
#探究朝向和价格的关系
plt.figure(figsize=(30,8))
x_d = df['Direction'].unique()
y_d = df.groupby(by=['Direction'])['Price'].mean().sort_values(ascending=False)
sns.barplot(x_d,y_d,palette='Greens_r')
#探究楼层对价格的影响,进行分类处理,1-9,9-17,17-25,依次到41,共记5组
#分桶处理,并设标签为0,1,2,3,4
#添加至原数据
floor = df['Floor']
floor_binary = pd.cut(floor,[1,9,17,25,33,41],labels=[0,1,2,3,4],right = False)
df['floor_binary'] = floor_binary
df['floor_binary'] = df['floor_binary'].astype('float') # .astype代表转换数据类型
plt.figure(figsize=(16,8))
x_f = df['floor_binary'].unique()
y_f = df.groupby(by=['floor_binary'])['Price'].mean().sort_values(ascending=False)
sns.barplot(x_f,y_f,palette='Reds_r')
#装修和价格关系
plt.figure(figsize=(16,8))
x = df['Renovation'].unique()

y = df.groupby(by=['Renovation'])['Price'].mean().sort_values(ascending=False)
sns.barplot(x[:4],y[:4],palette='Oranges_r')
#精装价格还是蛮高的
#年龄和价格的关系
fig,ax = plt.subplots(2,1,figsize=(30,18))
x = df['Year'].unique()

y0 = df.groupby(by=['Year']).size().sort_values(ascending=False)
sns.barplot(x,y0,ax=ax[0],palette='Reds_d')
ax[0].set_title('北京各房龄二手房在售数量')

y1 = df.groupby(by=['Year'])['Price'].mean().sort_values(ascending=False)
sns.barplot(x,y1,ax=ax[1],palette='Blues_r')
ax[1].set_title('北京各房龄二手房在售均价')
df.Elevator[df.Elevator=='有电梯'] = 1    
df.Elevator[df.Elevator=='无电梯'] = 0 
df.Renovation[df.Renovation=='精装'] = 1
df.Renovation[df.Renovation=='简装'] = 2
df.Renovation[df.Renovation=='毛坯'] = 3
df.Renovation[df.Renovation=='其他'] = 0
#之前这样操作全部变为NAN,保险起见重启df1
df1 = df
map1 = {'东城':13, '西城':12, '朝阳':11, '海淀':10, '丰台':9, '昌平':8, '大兴':7, '房山':6, '门头沟':5, '顺义':4,
       '亦庄开发区':3, '通州':2, '石景山':1}
df1['Region'] = df1['Region'].map(map1)
df1
df.corr()[['Price']]
# 设置绘图风格
sns.set_style('whitegrid')
sns.heatmap(df.corr()[['Price']],annot=True,vmax=1, square=True,cmap='bwr_r')

 

 

标签:False,机器,df,学习,二手房,sns,ax,import,Renovation
来源: https://www.cnblogs.com/158-174/p/16478943.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有