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%是坐北朝南的

资源下载: 源数据下载

北京某平台二手房分析相关推荐

  1. Pandas+Pyecharts | 北京某平台二手房数据分析+可视化

    用pandas进行数据处理,pyecharts对处理后的数据进行可视化分析市面上二手房各项基本特征及房源分布情况,探索二手房大数据背后的规律. Pyecharts的使用参考文档 Pyecharts实例 ...

  2. python数据分析实战项目—运用matplotlib可视化分析10000条北京各大区二手房区域信息(附源码)

    文章目录 开发工具 数据内容 实现代码 运行效果 10000条二手房信息下载地址 总结 开发工具 python版本:Python 3.6.1 python开发工具:JetBrains PyCharm ...

  3. ML之FE:对爬取的某平台二手房数据进行数据分析以及特征工程处理

    ML之FE:对爬取的某平台二手房数据进行数据分析以及特征工程处理 目录 对爬取的某平台二手房数据进行数据分析以及特征工程处理 1.定义数据集 2.特征工程(数据分析+数据处理) 对爬取的某平台二手房数 ...

  4. 全链通“铭镜”农产品溯源平台介绍分析

    id:BSN_2021 公众号:BSN研习社 作为分布式存储.加密算法.共识机制的集成融合创新技术,区块链具备诸多优越性能.金融.政务.公益.农业等,各行各业都能使用区块链. 农产品溯源,一方面,它是 ...

  5. 浅谈基于物联网技术的地下综合管廊智慧管控平台建设分析

    摘要:本文以物联网.GIS等技术为基础,采用文献研究等方法,在探究我国地下综合管廊管廊现状及相关技术飾基础上,对其智慧管控平台的建设展开了研究,希望能为相关研究及建设提供有价值的参考. 关键词:物联网 ...

  6. 本地生活 O2O 商机的平台战略分析

    本地生活 O2O 商机的平台战略分析 LBS观察员 一 12, 2014 行业报告 一位消费者想寻找一家中档餐馆,与朋友共进饭餐.他掏出手机,用"百度地图"搜索了一下周边的餐馆,立 ...

  7. Python爬虫-某家网平台二手房

    前言 本文是该专栏的第52篇,后面会持续分享python爬虫干货知识,记得关注. 在本专栏之前,笔者有详细介绍某某安网的新房和二手房"某平台新房和二手房",感兴趣的同学,可翻阅查看 ...

  8. 自动驾驶开发云平台业务分析

    自动驾驶开发云平台业务分析 自动驾驶车辆量产需积累大量里程经验,传统车端研发和测试方式,无法满足市场需求,业界普遍采用"云+端"研发迭代新模式,通过测试车队采集海量道路环境数据,在 ...

  9. 果断收藏!六大主流大数据采集平台架构分析

    随着大数据越来越被重视,数据采集的挑战变的尤为突出.今天为大家介绍几款数据采集平台: Apache Flume Fluentd Logstash Chukwa Scribe Splunk Forwar ...

最新文章

  1. 青龙羊毛——狸猫十堰
  2. mysql为查询结果字段赋默认值
  3. [PLM专题] 十分钟了解文本分类通用训练技巧
  4. python算法攻略_算法基础及python实现笔记一(堆和DFS)
  5. Python 测试开发教程
  6. 谁说.NET不适合搞大数据、机器学习和人工智能
  7. 继承类对方法的影响java_4-Java面向对象-继承(上)
  8. VisualDiffer for Mac(文件对比利器)支持m1
  9. [2018.11.03 T2] 执行任务
  10. IMX8基于FFT的GPU和CPU的性能测试
  11. 找不到好看的电影就看《IMDB排名前500电影》
  12. 计算机数学公式画爱心教程,几何画板如何绘制爱心?几何画板爱心函数教程
  13. sql compare mysql版本_SQL Compare 13免费版
  14. 消息中间件-Activemq之Master-Slaver
  15. mysql 查询随机10条数据 (转载)
  16. Android 原生语音播报
  17. Python写一个自动化交易程序
  18. 最新版gg服务器框架安装器,GG服务框架安装器最新版本
  19. RTU厂家,RTU品牌.遥测终端机厂家,遥测终端机品牌,DTU厂家DTU品牌
  20. 智行者王肖:自动驾驶本质在于对待数据的态度、获取及应用方式 | 自动驾驶这十年... 1

热门文章

  1. 外呼系统对于多种行业
  2. JAVA根据车牌获取归属地
  3. [已迁移]pwn-2021东华杯-部分[cpp1,gcc2,bg3]
  4. AppsFlyer 研究(十六)广告平台配置及代理商授权总结
  5. 开奖计算---五星直选复式
  6. 何为有效市场假说及其形态、意义、启示
  7. DAGDGC 特殊调弦
  8. 【读邹伟等著强化学习】第1章~第7章
  9. 在线网站客服系统源码
  10. DAYU200最新烧录OpenHarmony系统教程