当前位置: 首页 > news >正文

数据分析实战—房价特征关系

1.实战内容

1) 读取房价特征关系表(house_price.npz)绘制离地铁站的距离与单位面积的房价的散点图,并对其进行分析;
import pandas as pd
import numpy as np
import warnings
warnings.filterwarnings("ignore")
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei'
matplotlib.rcParams['axes.unicode_minus'] = Falsedata = np.load('house_price.npz', encoding='ASCII', allow_pickle=True)
data.files

columns = data['arr_0']
columns

values = data['arr_1']
values

year = values[:, 0]
age = values[:, 1]
distance = values[:, 2]
store = values[:, 3]
price = values[:, 4]
p = plt.figure(figsize=(8, 8))
plt.scatter(distance, price, marker='o')
plt.xlabel('离地铁站的距离')
plt.ylabel('单位面积房价')
plt.savefig('离地铁站的距离与单位面积房价关系图.png')
plt.show()

2) 创建新画布,将附近的商店个数划分为“0~3”,“4~7”,“8~103 个区间,并根据个数贴上 对应的标签:“较少”,“中等”,“较多”。分别计算 3 个区间下单位面积的房价的均值,绘制附近商店的个数与单位面积的房价的柱形图,并进行分析;
# (2)划分和画图
num_0_3 = []
num_4_7 = []
num_8_10 = []
for i in range(len(values)):if 0 <= store[i] < 4:num_0_3.append(price[i])elif 4 <= store[i] < 8:num_4_7.append(price[i])else:num_8_10.append(price[i])mean_num_0_3 = round(np.mean(num_0_3), 2)
mean_num_4_7 = round(np.mean(num_4_7), 2)
mean_num_8_10 = round(np.mean(num_8_10), 2)
mean_all_num = [mean_num_0_3, mean_num_4_7, mean_num_8_10]p = plt.figure(figsize=(8, 8))
label = ['较少', '中等', '较多']
plt.bar(range(3),mean_all_num, width=0.4) # 绘制直方图
plt.xlabel('附近商店数')
plt.ylabel('单位面积房价')
plt.xticks(range(3),label)
plt.savefig('附近商店数与单位面积房价关系图.png')
plt.show()

 3) 创建新画布,根据交易年份绘制饼图,并查看交易年份的分布情况;
#(3)交易年份
import pandas as pd
year_new=pd.DataFrame(year)
year_new=year_new.drop_duplicates()#查看年份
year_new

year_2018 = 0
year_2019 = 0
year_2020 = 0
for i in range(len(values)):if year[i] == 2018:year_2018 += 1elif year[i] == 2019:year_2019 += 1else:year_2020 += 1all_year = [year_2018, year_2019, year_2020]p = plt.figure(figsize=(8, 8))
label= ['2018', '2019', '2020']
explode = [0.01, 0.01, 0.01] # 设定各项离心 n 个半径
plt.pie(all_year, explode=explode, labels=label, autopct='%1.1f%%',
textprops={'fontsize': 20}) # 绘制饼图
plt.title('房屋交易年份分布情况饼图', fontsize=20)
plt.savefig('房屋交易年份总体分布情况饼图.png')
plt.show()

 

4) 创建新画布,再子图上分别绘制房屋年龄、离地铁站的距离、附近商店的个数、单位面积的 房价 4 个特征的箱线图,查看是否存在异常值。
# (4)箱线图
p = plt.figure(figsize=(10,10)) # 设置画布
ax1 = p.add_subplot(2, 2, 1)
gdp = (list(age))
plt.boxplot(gdp, notch=True, meanline=True) # 绘制箱线图
plt.ylabel('房屋年龄')
plt.title('房屋年龄分布情况箱线图', fontsize=20)
ax2 = p.add_subplot(2, 2, 2)
gdp = (list(distance))
plt.boxplot(gdp, notch=True, meanline=True) # 绘制箱线图
plt.ylabel('地铁站距离')
plt.title('地铁站距离分布情况箱线图', fontsize=20)ax3 = p.add_subplot(2, 2, 3)
gdp = (list(store))
plt.boxplot(gdp, notch=True, meanline=True) # 绘制箱线图
plt.ylabel('附近商店个数')
plt.title('附近商店个数分布情况箱线图', fontsize=20)
ax4 = p.add_subplot(2, 2, 4)
gdp = (list(price))
plt.boxplot(gdp, notch=True, meanline=True) # 绘制箱线图
plt.ylabel('单位面积房价')
plt.title('单位面积房价分布情况箱线图', fontsize=20)
plt.savefig('各个特征分布情况箱线图.png')
plt.show()

 

ax2 = p.add_subplot(2, 2, 2)
gdp = (list(distance))
plt.boxplot(gdp, notch=True, meanline=True) # 绘制箱线图
plt.ylabel('地铁站距离')
plt.title('地铁站距离分布情况箱线图', fontsize=20)

 

 

 

 

 

 

 

 

 

 

 

 
http://www.lryc.cn/news/502236.html

相关文章:

  • 云和恩墨 zCloud 与华为云 GaussDB 完成兼容性互认证
  • 【大语言模型LangChain】 ModelsIO OutputParsers详解
  • PaddleSpeech本地部署文档
  • Android 第三方框架:RxJava:源码分析:责任链模式
  • 网络安全 与 加密算法
  • UE4_贴花_贴花基础知识二
  • ElasticSearch 搜索、排序、分页功能
  • MySQL-9.1.0 实现最基础的主从复制
  • Java中的“泛型“
  • 前端(五)css属性
  • 总结拓展十七:SAP 采购订单行项目“交货“页签解析
  • 分布式日志系统设计
  • DApp开发如何平衡性能与去中心化?
  • RK3588开发笔记-Buildroot编译Qt5WebEngine-5.15.10
  • 2024年12月GESPC++三级真题解析
  • vue-router路由传参的两种方式(params 和 query )
  • Asp.net 做登录验证码(MVC)
  • 在 Chrome中直接调用大型语言模型的API
  • 微信小程序调用腾讯地图-并解读API文档 JavaScript SDK和 WebService API
  • WPF 控件
  • VScode执行任务
  • MySQL(数据类型)
  • pytorch中的tqdm库
  • NoSQL大数据存储技术测试(5)MongoDB的原理和使用
  • 【Golang】Go语言编程思想(六):Channel,第四节,Select
  • Vue2简介
  • EasyPlayer.js播放器如何在iOS上实现低延时直播?
  • ChatGPT Pro是什么
  • 基于Springboot汽车资讯网站【附源码】
  • MySQL-DQL之数据表操作