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

简介: Pandas+Pyecharts | 北京某平台二手房数据分析+可视化

本期导读

大家好,我是欧K。

本期用pandas进行数据处理,pyecharts对处理后的数据进行可视化分析市面上二手房各项基本特征及房源分布情况,探索二手房大数据背后的规律,希望对你有所帮助,希望对你有所帮助。



涉及到的内容:

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


1. 顺序结构

1.1 导入模块

import pandas as pd
from pyecharts.charts import Map
from pyecharts.charts import Bar
from pyecharts.charts import Line
from pyecharts.charts import Grid
from pyecharts.charts import Pie
from pyecharts.charts import Scatter
from pyecharts import options as opts

地图显示部分需要用到 pyecharts==1.9.0
已安装其他低版本的需要升级,如果未安装过pyecharts,直接pip安装就是最新版本。
1.2 查看 pyecharts 版本 

import pyecharts
pyecharts.__version__


2. Pandas数据处理

2.1 读取数据

代码:

df = pd.read_csv('二手房数据.csv', encoding = 'gb18030')
df.head()

结果

2.2 查看表格数据描述

df.describe()

结果:

一共有23677条数据。


2.3 查看表格是否有数据缺失

df.isnull().sum()

结果:

可以看到电梯数据缺失8257行,将缺失数据填充为“未知”:

df['电梯'].fillna('未知', inplace=True)


2.4 统计各城区二手房数量

代码:

g = df.groupby('市区')
df_region = g.count()['小区']
region = df_region.index.tolist()
count = df_region.values.tolist()
df_region

结果:

可以看出,丰台、朝阳、海淀、昌平在售的房源数量最多,高达12000多套,占了总量的1/2。


3. Pyecharts可视化


3.1 北京各城区二手房数量地图分布

代码:

g = df.groupby('市区')
df_region = g.count()['小区']
region = df_region.index.tolist()
count = df_region.values.tolist()
new = [x + '区' for x in region]
m = (
        Map()
        .add('', [list(z) for z in zip(new, count)], '北京')
        .set_global_opts(
            title_opts=opts.TitleOpts(title='北京市二手房各区分布'),
            visualmap_opts=opts.VisualMapOpts(max_=3000),
        )
    )
m.render_notebook()

效果:


3.2 各城区二手房数量-平均价格柱状图


代码:

# 各城区二手房数量-平均价格柱状图
df_price = g.mean()['价格(万元)']
price = [round(x,2) for x in df_price.values.tolist()]
bar = (
    Bar()
    .add_xaxis(region)
    .add_yaxis('数量', count,
              label_opts=opts.LabelOpts(is_show=True))
    .extend_axis(
        yaxis=opts.AxisOpts(
            name="价格(万元)",
            type_="value",
            min_=200,
            max_=900,
            interval=100,
            axislabel_opts=opts.LabelOpts(formatter="{value}"),
        )
    )
    .set_global_opts(
        tooltip_opts=opts.TooltipOpts(
            is_show=True, trigger="axis", axis_pointer_type="cross"
        ),
        xaxis_opts=opts.AxisOpts(
            type_="category",
            axispointer_opts=opts.AxisPointerOpts(is_show=True, type_="shadow"),
        ),
        yaxis_opts=opts.AxisOpts(name='数量',
            axistick_opts=opts.AxisTickOpts(is_show=True),
            splitline_opts=opts.SplitLineOpts(is_show=False),)
    )
)
line2 = (
    Line()
    .add_xaxis(xaxis_data=region)
    .add_yaxis(
        series_name="价格",
        yaxis_index=1,
        y_axis=price,
        label_opts=opts.LabelOpts(is_show=True),
        z=10)
)
bar.overlap(line2)
grid = Grid()
grid.add(bar, opts.GridOpts(pos_left="5%", pos_right="20%"), is_control_axis_index=True)
grid.render_notebook()

效果:

3.3 二手房价格最高Top15

代码:

top_price = df.sort_values(by="价格(万元)",ascending=False)[:15]
area = top_price['小区'].values.tolist()
count = top_price['价格(万元)'].values.tolist()
bar0 = (
    Bar()
    .add_xaxis(area).set_series_opts(label_opts=opts.LabelOpts(position="right"))
    .set_global_opts(
        yaxis_opts=opts.AxisOpts(name='面积(㎡)'),
        xaxis_opts=opts.AxisOpts(name='数量'),
    )
)
bar0.render_notebook()

效果:

3.4 装修情况/有无电梯玫瑰图

代码:

df_fitment = g1.count()['小区']
fitment = df_fitment.index.tolist()
count1 = df_fitment.values.tolist()
df_direction = g2.count()['小区']
directions = df_direction.index.tolist()
count2 = df_direction.values.tolist()
bar = (
    Bar()
    .add_xaxis(fitment)
    .add_yaxis('', count1, category_gap = '50%')
    .reversal_axis()
    .set_series_opts(label_opts=opts.LabelOpts(position='right'))
    .set_global_opts(
        yaxis_opts=opts.AxisOpts(name='装修情况'),
        xaxis_opts=opts.AxisOpts(name='数量'),
        title_opts=opts.TitleOpts(title='',pos_left='33%',pos_top="5%"),
        legend_opts=opts.LegendOpts(type_="scroll", pos_left="90%",pos_top="58%",orient="vertical")
    )
)
c2 = (
    Pie(init_opts=opts.InitOpts(
            width='800px', height='600px',
            )
       )
        .add(
        '',
        [list(z) for z in zip(directions, count2)],
        radius=['10%', '30%'],
        center=['75%', '65%'],
        rosetype="radius",
        label_opts=opts.LabelOpts(is_show=True),
        )
        .set_global_opts(title_opts=opts.TitleOpts(title='有/无电梯',pos_left='33%',pos_top="5%"),
                        legend_opts=opts.LegendOpts(type_="scroll", pos_left="90%",pos_top="15%",orient="vertical")
                        )
        .set_series_opts(label_opts=opts.LabelOpts(formatter='{b}:{c} \n ({d}%)'),position="outside")
    )
bar.overlap(c2)
bar.render_notebook()


效果:


3.5 二手房总价与面积散点图

代码:

from pyecharts.charts import Scatter
s = (
    Scatter()
    .add_xaxis(df['面积(㎡)'].values.tolist())
    .add_yaxis('',df['价格(万元)'].values.tolist())
    .set_global_opts(xaxis_opts=opts.AxisOpts(name='面积(㎡)',type_='value'),
                    yaxis_opts=opts.AxisOpts(name='价格(万元)'),)
)
s.render_notebook()

效果:


完。

END


以上就是本期为大家整理的全部内容了,赶快练习起来吧,喜欢的朋友可以点赞、点在看也可以分享让更多人知道

相关文章
|
数据可视化 数据挖掘 数据处理
Pandas+Pyecharts | 40000+汽车之家数据分析可视化
Pandas+Pyecharts | 40000+汽车之家数据分析可视化
|
数据可视化 数据挖掘 大数据
Pandas+Pyecharts | 北京某平台二手房数据分析可视化
Pandas+Pyecharts | 北京某平台二手房数据分析可视化
|
3月前
|
数据采集 数据挖掘 数据处理
Pandas实践:南京地铁数据处理分析
Pandas实践:南京地铁数据处理分析
43 2
|
7月前
|
存储 数据可视化 数据挖掘
实战案例:Pandas在金融数据分析中的应用
【4月更文挑战第16天】本文通过实例展示了Pandas在金融数据分析中的应用。案例中,一家投资机构使用Pandas加载、清洗股票历史价格数据,删除无关列并重命名,将日期设为索引。接着,数据被可视化以观察价格走势,进行基本统计分析了解价格分布,以及计算移动平均线来平滑波动。Pandas的便捷功能在金融数据分析中体现出高效率和实用性。
|
7月前
|
数据处理 Python
Pandas在数据分析中的应用案例
使用Pandas分析销售数据,通过`read_csv`读取CSV,`groupby`按产品类别分组并应用`agg`计算类别总销售额、平均价和销售量。之后,利用`sort_values`按销售额降序排列,`head`获取前5高销售额类别。示例代码展示了Pandas在数据处理和分析中的高效性。
116 0
|
7月前
|
数据挖掘 BI Python
Python数据分析(三)—— Pandas数据统计
Python数据分析(三)—— Pandas数据统计
|
数据可视化 索引 Python
Plotly 和 Pandas:强强联手实现有效的数据可视化
Plotly 和 Pandas:强强联手实现有效的数据可视化
97 0
|
数据采集 供应链 数据可视化
使用python和Selenium进行数据分析:北京二手房房价
北京二手房市场是一个热门的话题,许多人都想了解北京二手房的价格走势、供需情况和影响因素。然而,要获取北京二手房的相关数据并不容易,因为一些网站可能会限制访问、设置验证码或阻止抓取。为了解决这个问题,我们可以使用python和Selenium这两个强大的工具,来进行代理IP网页采集和数据分析。
134 1
|
数据可视化 数据挖掘 定位技术
Pandas+Pyecharts | 上海市餐饮数据分析可视化
Pandas+Pyecharts | 上海市餐饮数据分析可视化
|
数据可视化 数据处理 Python
Pandas+Pyecharts | 北京近五年历史天气数据可视化
Pandas+Pyecharts | 北京近五年历史天气数据可视化