北京某平台二手房分析
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 解决中⽂显示问题
# plt.rcParams['font.sans-serif'] = [u'SimHei']
# plt.rcParams['axes.unicode_minus'] = False
df = pd.read_csv('二手房数据.csv',encoding='gb18030')
df.head()
市区 | 小区 | 户型 | 朝向 | 楼层 | 装修情况 | 电梯 | 面积(㎡) | 价格(万元) | 年份 | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 朝阳 | 育慧里一区 | 1室0厅 | 西 | 7 | 精装 | 有电梯 | 52.0 | 343.0 | 2001 |
1 | 朝阳 | 大西洋新城A区 | 2室2厅 | 南北 | 10 | 精装 | 有电梯 | 86.0 | 835.0 | 1999 |
2 | 朝阳 | 团结湖路 | 2室1厅 | 东西 | 6 | 精装 | 无电梯 | 65.0 | 430.0 | 1980 |
3 | 朝阳 | 尚家楼48号院 | 2室1厅 | 南北 | 12 | 精装 | 有电梯 | 75.0 | 610.0 | 1998 |
4 | 朝阳 | 望京西园一区 | 3室2厅 | 南北 | 6 | 精装 | 无电梯 | 115.0 | 710.0 | 1997 |
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 23677 entries, 0 to 23676
Data columns (total 10 columns):# Column Non-Null Count Dtype
--- ------ -------------- ----- 0 市区 23677 non-null object 1 小区 23677 non-null object 2 户型 23677 non-null object 3 朝向 23677 non-null object 4 楼层 23677 non-null int64 5 装修情况 23677 non-null object 6 电梯 15420 non-null object 7 面积(㎡) 23677 non-null float648 价格(万元) 23677 non-null float649 年份 23677 non-null int64
dtypes: float64(2), int64(2), object(6)
memory usage: 1.8+ MB
df.describe()
楼层 | 面积(㎡) | 价格(万元) | 年份 | |
---|---|---|---|---|
count | 23677.000000 | 23677.000000 | 23677.000000 | 23677.000000 |
mean | 12.764877 | 99.388616 | 610.668319 | 2001.326519 |
std | 7.644138 | 51.270606 | 411.452107 | 9.001996 |
min | 1.000000 | 15.000000 | 60.000000 | 1950.000000 |
25% | 6.000000 | 66.000000 | 365.000000 | 1997.000000 |
50% | 11.000000 | 88.000000 | 499.000000 | 2003.000000 |
75% | 18.000000 | 118.000000 | 717.000000 | 2007.000000 |
max | 57.000000 | 1019.000000 | 6000.000000 | 2017.000000 |
缺失值处理
df.isnull().any()
市区 False
小区 False
户型 False
朝向 False
楼层 False
装修情况 False
电梯 True
面积(㎡) False
价格(万元) False
年份 False
dtype: bool
df['电梯'].isnull().sum()
8257
df['电梯'].unique()
array(['有电梯', '无电梯', nan], dtype=object)
# 替换nan值
df['电梯'].fillna('不清楚',inplace=True)
df['电梯'].unique()
array(['有电梯', '无电梯', '不清楚'], dtype=object)
查看朝房屋朝向数据
df['朝向'].unique()
array(['西', '南北', '东西', '南西', '西南', '东南', '南', '东北', '东', '西北', '北'],dtype=object)
df['朝向'] = df['朝向'].replace('南西','西南')
df['朝向'].unique()
array(['西', '南北', '东西', '西南', '东南', '南', '东北', '东', '西北', '北'],dtype=object)
统计各城区二手房数量
df1 = df.groupby('市区')['小区'].count()
df1
市区
东城 1533
丰台 2952
大兴 2115
密云 12
平谷 41
延庆 469
怀柔 15
房山 1442
昌平 2811
朝阳 2973
海淀 2983
石景山 882
西城 2130
通州 1602
门头沟 496
顺义 1221
Name: 小区, dtype: int64
plt.style.use('seaborn')
# 解决中⽂显示问题
plt.rcParams['font.sans-serif'] = [u'SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.figure(figsize=(16,4))
plt.plot(df1)
plt.show()
df.head()
市区 | 小区 | 户型 | 朝向 | 楼层 | 装修情况 | 电梯 | 面积(㎡) | 价格(万元) | 年份 | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 朝阳 | 育慧里一区 | 1室0厅 | 西 | 7 | 精装 | 有电梯 | 52.0 | 343.0 | 2001 |
1 | 朝阳 | 大西洋新城A区 | 2室2厅 | 南北 | 10 | 精装 | 有电梯 | 86.0 | 835.0 | 1999 |
2 | 朝阳 | 团结湖路 | 2室1厅 | 东西 | 6 | 精装 | 无电梯 | 65.0 | 430.0 | 1980 |
3 | 朝阳 | 尚家楼48号院 | 2室1厅 | 南北 | 12 | 精装 | 有电梯 | 75.0 | 610.0 | 1998 |
4 | 朝阳 | 望京西园一区 | 3室2厅 | 南北 | 6 | 精装 | 无电梯 | 115.0 | 710.0 | 1997 |
各城区二手房平均价格
df2 = df.groupby('市区').mean()['价格(万元)']
df2.head()
市区
东城 851.425245
丰台 525.103591
大兴 460.469693
密云 425.333333
平谷 308.658537
Name: 价格(万元), dtype: float64
df2.values
array([851.42524462, 525.10359079, 460.46969267, 425.33333333,308.65853659, 549.87633262, 785.2 , 360.61185853,469.23034507, 757.320148 , 827.74019444, 468.92675737,828.90920188, 455.10755306, 388.05403226, 558.33988534])
plt.figure(figsize=(16,4))
plt.bar(df2.index,df2.values)
# 给条形图添加数据标注
for x,y in enumerate(df2):plt.text(x-0.2,y,round(y,2))
plt.show()
二手房价格最高Top10
TOP10_price = df.sort_values(by='价格(万元)',ascending=False)[:10]
TOP10_price
市区 | 小区 | 户型 | 朝向 | 楼层 | 装修情况 | 电梯 | 面积(㎡) | 价格(万元) | 年份 | |
---|---|---|---|---|---|---|---|---|---|---|
20390 | 西城 | 朱雀门 | 4室2厅 | 东南 | 5 | 其他 | 有电梯 | 376.0 | 6000.0 | 2008 |
22228 | 东城 | 贡院六号 | 5室2厅 | 南北 | 23 | 精装 | 有电梯 | 459.0 | 5500.0 | 2002 |
22907 | 东城 | NAGA上院 | 6室2厅 | 东南 | 12 | 精装 | 有电梯 | 608.0 | 5000.0 | 2008 |
3219 | 顺义 | 丽宫 | 5室2厅 | 南北 | 3 | 精装 | 不清楚 | 685.0 | 5000.0 | 2007 |
22982 | 东城 | 当代MOMA | 5室2厅 | 东南 | 7 | 精装 | 不清楚 | 384.0 | 4988.0 | 2006 |
20202 | 西城 | 耕天下 | 5室3厅 | 南北 | 7 | 其他 | 有电梯 | 330.0 | 4650.0 | 2003 |
6191 | 昌平 | 碧水庄园 | 5室3厅 | 南北 | 2 | 精装 | 不清楚 | 571.0 | 4600.0 | 2005 |
2391 | 顺义 | 丽嘉花园 | 4室2厅 | 东南 | 2 | 其他 | 不清楚 | 548.0 | 4500.0 | 2007 |
17285 | 朝阳 | 首府官邸 | 叠拼别墅 | 南北 | 5 | 精装 | 不清楚 | 523.4 | 4500.0 | 2007 |
15327 | 海淀 | 紫御府 | 4室2厅 | 南北 | 12 | 精装 | 有电梯 | 374.0 | 4368.0 | 2008 |
二手房总价与面积散点图
df.head()
市区 | 小区 | 户型 | 朝向 | 楼层 | 装修情况 | 电梯 | 面积(㎡) | 价格(万元) | 年份 | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 朝阳 | 育慧里一区 | 1室0厅 | 西 | 7 | 精装 | 有电梯 | 52.0 | 343.0 | 2001 |
1 | 朝阳 | 大西洋新城A区 | 2室2厅 | 南北 | 10 | 精装 | 有电梯 | 86.0 | 835.0 | 1999 |
2 | 朝阳 | 团结湖路 | 2室1厅 | 东西 | 6 | 精装 | 无电梯 | 65.0 | 430.0 | 1980 |
3 | 朝阳 | 尚家楼48号院 | 2室1厅 | 南北 | 12 | 精装 | 有电梯 | 75.0 | 610.0 | 1998 |
4 | 朝阳 | 望京西园一区 | 3室2厅 | 南北 | 6 | 精装 | 无电梯 | 115.0 | 710.0 | 1997 |
df_scatter = df[['面积(㎡)','价格(万元)']]
plt.figure(figsize=(16,8))
sns.scatterplot(x='面积(㎡)',y='价格(万元)',data=df_scatter,palette='husl',s=50,markers='O')
plt.show()
房屋朝向饼图
df.head()
市区 | 小区 | 户型 | 朝向 | 楼层 | 装修情况 | 电梯 | 面积(㎡) | 价格(万元) | 年份 | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 朝阳 | 育慧里一区 | 1室0厅 | 西 | 7 | 精装 | 有电梯 | 52.0 | 343.0 | 2001 |
1 | 朝阳 | 大西洋新城A区 | 2室2厅 | 南北 | 10 | 精装 | 有电梯 | 86.0 | 835.0 | 1999 |
2 | 朝阳 | 团结湖路 | 2室1厅 | 东西 | 6 | 精装 | 无电梯 | 65.0 | 430.0 | 1980 |
3 | 朝阳 | 尚家楼48号院 | 2室1厅 | 南北 | 12 | 精装 | 有电梯 | 75.0 | 610.0 | 1998 |
4 | 朝阳 | 望京西园一区 | 3室2厅 | 南北 | 6 | 精装 | 无电梯 | 115.0 | 710.0 | 1997 |
df_pie = df.groupby('朝向').count()['小区']
df_pie
朝向
东 934
东北 681
东南 2096
东西 1559
北 612
南 2847
南北 11433
西 889
西北 781
西南 1845
Name: 小区, dtype: int64
plt.figure(figsize=(16,8))
plt.pie(df_pie.values,labels = df_pie.index,autopct = '%.2f%%', # 设置百分比格式pctdistance = 0.8,# 设置百分比到圆心的距离#shadow = False,# 添加饼图阴影效果startangle = 240,# 设置饼图的初始摆放角度radius = 1.2, # 设置饼图半径大小#wedgeprops = {'linewidth':'1.5','edgecolor':'gray'},# 设置饼图内外边界属性值textprops ={'fontsize':12,'color':'black'}, # 设置饼图中文本属性counterclock = False # 是否逆时针呈现)
plt.show()
装修情况/有无电梯组合图
df3 = df.groupby('装修情况').count()['小区']
df3
装修情况
其他 3239
毛坯 583
简装 8499
精装 11356
Name: 小区, dtype: int64
df4 = df.groupby('电梯').count()['小区']
df4
电梯
不清楚 8257
无电梯 6078
有电梯 9342
Name: 小区, dtype: int64
plt.figure(figsize=(16,8))
plt.subplot(121)
plt.bar(df3.index,df3.values)
for x,y in enumerate(df3):plt.text(x-0.1,y+100,y)
plt.subplot(122)
plt.pie(df4.values,labels=df4.index, autopct = '%.2f%%')
plt.show()
二手房楼层分布柱状图
df5 = df.groupby('楼层').count()['小区']
df5.head()
楼层
1 6
2 94
3 201
4 465
5 1070
Name: 小区, dtype: int64
plt.figure(figsize=(16,8))
plt.bar(df5.index,df5.values)
plt.show()
房屋面积分布柱状图
area_l = [0, 50, 80, 100, 120, 150, 200, 250, 300, 350, 400, 1500]
label_l = ['小于50', '50-80', '80-100', '100-120', '120-150', '150-200', '200-250', '250-300', '300-350', '350-400', '大于400']
mj_cut = pd.cut(df['面积(㎡)'], area_l, labels=label_l)
df_area = mj_cut.value_counts()
df_area
50-80 7962
80-100 5691
120-150 2928
100-120 2881
150-200 1677
小于50 1562
200-250 545
250-300 226
300-350 94
大于400 56
350-400 55
Name: 面积(㎡), dtype: int64
plt.figure(figsize=(16,8))
plt.bar(df_area.index,df_area.values)
for x,y in enumerate(df_area):plt.text(x-0.1,y+100,y)
plt.show()
总结
- 丰台区、房山区、昌平区、朝阳区、海淀区的二手房居多,高达12000多套,约占总量的1/2。
- 东城区、西城区和海淀区二手房平均售价最高,均在800万元以上。
- 二手房面积多集中于0-400平米,价格在0-3000万元居多。
- 房屋朝向约50%是坐北朝南的
资源下载: 源数据下载
北京某平台二手房分析相关推荐
- Pandas+Pyecharts | 北京某平台二手房数据分析+可视化
用pandas进行数据处理,pyecharts对处理后的数据进行可视化分析市面上二手房各项基本特征及房源分布情况,探索二手房大数据背后的规律. Pyecharts的使用参考文档 Pyecharts实例 ...
- python数据分析实战项目—运用matplotlib可视化分析10000条北京各大区二手房区域信息(附源码)
文章目录 开发工具 数据内容 实现代码 运行效果 10000条二手房信息下载地址 总结 开发工具 python版本:Python 3.6.1 python开发工具:JetBrains PyCharm ...
- ML之FE:对爬取的某平台二手房数据进行数据分析以及特征工程处理
ML之FE:对爬取的某平台二手房数据进行数据分析以及特征工程处理 目录 对爬取的某平台二手房数据进行数据分析以及特征工程处理 1.定义数据集 2.特征工程(数据分析+数据处理) 对爬取的某平台二手房数 ...
- 全链通“铭镜”农产品溯源平台介绍分析
id:BSN_2021 公众号:BSN研习社 作为分布式存储.加密算法.共识机制的集成融合创新技术,区块链具备诸多优越性能.金融.政务.公益.农业等,各行各业都能使用区块链. 农产品溯源,一方面,它是 ...
- 浅谈基于物联网技术的地下综合管廊智慧管控平台建设分析
摘要:本文以物联网.GIS等技术为基础,采用文献研究等方法,在探究我国地下综合管廊管廊现状及相关技术飾基础上,对其智慧管控平台的建设展开了研究,希望能为相关研究及建设提供有价值的参考. 关键词:物联网 ...
- 本地生活 O2O 商机的平台战略分析
本地生活 O2O 商机的平台战略分析 LBS观察员 一 12, 2014 行业报告 一位消费者想寻找一家中档餐馆,与朋友共进饭餐.他掏出手机,用"百度地图"搜索了一下周边的餐馆,立 ...
- Python爬虫-某家网平台二手房
前言 本文是该专栏的第52篇,后面会持续分享python爬虫干货知识,记得关注. 在本专栏之前,笔者有详细介绍某某安网的新房和二手房"某平台新房和二手房",感兴趣的同学,可翻阅查看 ...
- 自动驾驶开发云平台业务分析
自动驾驶开发云平台业务分析 自动驾驶车辆量产需积累大量里程经验,传统车端研发和测试方式,无法满足市场需求,业界普遍采用"云+端"研发迭代新模式,通过测试车队采集海量道路环境数据,在 ...
- 果断收藏!六大主流大数据采集平台架构分析
随着大数据越来越被重视,数据采集的挑战变的尤为突出.今天为大家介绍几款数据采集平台: Apache Flume Fluentd Logstash Chukwa Scribe Splunk Forwar ...
最新文章
- 青龙羊毛——狸猫十堰
- mysql为查询结果字段赋默认值
- [PLM专题] 十分钟了解文本分类通用训练技巧
- python算法攻略_算法基础及python实现笔记一(堆和DFS)
- Python 测试开发教程
- 谁说.NET不适合搞大数据、机器学习和人工智能
- 继承类对方法的影响java_4-Java面向对象-继承(上)
- VisualDiffer for Mac(文件对比利器)支持m1
- [2018.11.03 T2] 执行任务
- IMX8基于FFT的GPU和CPU的性能测试
- 找不到好看的电影就看《IMDB排名前500电影》
- 计算机数学公式画爱心教程,几何画板如何绘制爱心?几何画板爱心函数教程
- sql compare mysql版本_SQL Compare 13免费版
- 消息中间件-Activemq之Master-Slaver
- mysql 查询随机10条数据 (转载)
- Android 原生语音播报
- Python写一个自动化交易程序
- 最新版gg服务器框架安装器,GG服务框架安装器最新版本
- RTU厂家,RTU品牌.遥测终端机厂家,遥测终端机品牌,DTU厂家DTU品牌
- 智行者王肖:自动驾驶本质在于对待数据的态度、获取及应用方式 | 自动驾驶这十年... 1