53 Pandas+Pyecharts | 上海链家二手房数据分析可视化

大家好,我是欧K~

本期将利用Python分析「上海链家二手房数据」,看看:上海各行政区二手房数量、单价、均价分布、二手房面积、楼层、年份、小区分布等情况,希望对大家有所帮助,如有疑问或者需要改进的地方可以联系小编。

涉及到的库:

  • Pandas — 数据处理
  • Pyecharts — 数据可视化

1. 导入模块

import pandas as pd
from pyecharts.charts import *
from pyecharts.commons.utils import JsCode
from pyecharts import options as opts
import warnings
warnings.filterwarnings('ignore')

2. Pandas数据处理

2.1 读取数据

df = pd.read_excel('./上海链家二手房数据.xlsx')

2.2 查看数据信息

df.info()

一共有28201条数据
包含小区名称、户型、面积、区域、楼层、朝向、价格、单价、建筑时间等字段

2.3 去除重复数据

df1 = df.drop_duplicates()

2.4 面积、价格、单价、楼层数据提取

df1['面积'] = pd.to_numeric(df1['面积'].str.extract(r'(\d+\.?\d+)', expand=False))
df1['价格'] = pd.to_numeric(df1['价格'].str.extract(r'(\d+)', expand=False))
df1['单价'] = pd.to_numeric(df1['单价'].str.extract(r'(\d+)', expand=False))
df1['楼层'] = pd.to_numeric(df1['楼层'].str.extract(r'(\d+)', expand=False))

3. Pyecharts数据可视化

3.1 上海各行政区二手房数量分布

def get_map():
    chart = (
        Map(init_opts=init_opts)
        .add('',
             [list(z) for z in zip(x_data, y_data)],
             '上海',
             is_map_symbol_show=False,
            )
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title="1-上海各行政区二手房数量分布",
                pos_left="center",
                pos_top='2%',
                subtitle=subtitle,
            ),
            visualmap_opts=opts.VisualMapOpts(
                is_show=True,
            ),
        )    
   )
  • 浦东新区、闵行区、徐汇区、杨浦区、宝山区、普陀区、长宁区、嘉定区、松江区等行政区的二手房数量相较其他行政区更多一些。
  • 静安区、金山区、崇明区的二手房相对少一些。

3.2 上海各行政区二手房均价

  • 黄浦区二手房均价最高,总价达到了1000万以上。
  • 静安区、长宁区、青浦区、徐汇区、虹口区、浦东新区、闸北区、普陀区、闵行区、杨浦区等行政区二手房平均房价也在500万以上。

3.3 上海各行政区二手房平均单价

def get_bar():
    chart = (
        Bar(init_opts=init_opts)
        .add_xaxis(x_data)
        .add_yaxis('', y_data)
        .reversal_axis()
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title='3-上海各行政区二手房平均单价(元/㎡)',
                subtitle=subtitle,
                pos_top='2%',
                pos_left='center',
            ),
            visualmap_opts=opts.VisualMapOpts(
                is_show=False,
            ),
            legend_opts=opts.LegendOpts(is_show=False)
        )
    )
  • 静安区、黄浦区两个行政区二手房单价达到了90000以上。
  • 单价50000以上的有徐汇区、长宁区、虹口区、闸北区、杨浦区、普陀区、浦东新区、闵行区、宝山区。

3.4 二手房朝向分布

房屋朝向方面90%以上是中规中矩的南北朝向。

3.5 二手房建筑时间分布

def get_line():
    chart = (
        Line(init_opts=init_opts)
        .add_xaxis(x_data)
        .add_yaxis('', y_data)
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title="5-二手房建筑时间分布",
                pos_left="center",
                pos_top='2%',
                subtitle=subtitle,
            ),
            visualmap_opts=opts.VisualMapOpts(
                is_show=False,
            ),
        )    )

大多数房屋建筑时间在1992年以后,房龄在20-30年之间。

3.6 二手房楼层分布

大多数二手房楼层在5-9层之间,少量达到了60层及以上。

3.7 二手房面积分布

def get_Scatter():
    chart = (
        Scatter(init_opts=init_opts)
        .add_xaxis(x_data)
        .add_yaxis('', y_data)
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title="7-二手房面积(㎡)分布",
                pos_left="center",
                pos_top='2%',
                subtitle=subtitle,
            ),
            visualmap_opts=opts.VisualMapOpts(
                is_show=False,
            ),
        )
    )

大多数二手房面积在200㎡及以下,400㎡及以上应该是别墅比较多。

3.8 户型数量TOP10

2室2厅、2室1厅、3室2厅的二手房居多,每种类型都在5000套以上。

3.9 单价最高小区TOP10

二手房单价最高的小区:宏业花园、汤臣怡园、皋兰路21弄、东宝兴路306号、四方西郊花园、雾晓大楼、荣业里、泰康路21号、凯德茂名公馆、华侨城苏河湾(公寓)

3.10 小区价格词云

def get_WordCloud():
    chart = (
        WordCloud(init_opts=init_opts)
        .add('',words,word_size_range=[5,34])
        .set_global_opts(
            title_opts=opts.TitleOpts(
                title='10-小区价格词云',
                subtitle=subtitle,
                pos_top='2%',
                pos_left='center',
            ),
            visualmap_opts=opts.VisualMapOpts(
                is_show=False,
            ),
            legend_opts=opts.LegendOpts(is_show=False)
        )
    )

4. 源码+数据

下载资源