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()

效果:


完。


4. 完整代码+数据


https://www.heywhale.com/mw/project/60d05c29056f570017c0f756

END


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

相关文章
|
9天前
|
数据采集 SQL 数据可视化
Python数据分析工具Pandas
【4月更文挑战第14天】Pandas是Python的数据分析库,提供Series和DataFrame数据结构,用于高效处理标记数据。它支持从多种数据源加载数据,包括CSV、Excel和SQL。功能包括数据清洗(处理缺失值、异常值)、数据操作(切片、过滤、分组)、时间序列分析及与Matplotlib等库集成进行数据可视化。其高性能底层基于NumPy,适合大型数据集处理。通过加载数据、清洗、分析和可视化,Pandas简化了数据分析流程。广泛的学习资源使其成为数据分析初学者的理想选择。
15 1
|
10天前
|
数据采集 数据可视化 数据挖掘
SciPy在数据分析中的应用:从数据清洗到可视化
【4月更文挑战第17天】# SciPy在数据分析中的应用:从数据清洗到可视化。文章探讨了SciPy在数据清洗(使用NumPy处理缺失值和异常值)、数据分析(描述性统计和模型拟合)以及数据可视化(结合Matplotlib和Seaborn进行图表绘制)中的作用。SciPy与其他Python库结合,为完整的数据分析流程提供了强大支持。
|
11天前
|
供应链 搜索推荐 数据挖掘
Pandas实战案例:电商数据分析的实践与挑战
【4月更文挑战第16天】本文通过一个电商数据分析案例展示了Pandas在处理销售数据、用户行为分析及商品销售趋势预测中的应用。在数据准备与清洗阶段,Pandas用于处理缺失值、重复值。接着,通过用户购买行为和商品销售趋势分析,构建用户画像并预测销售趋势。实践中遇到的大数据量和数据多样性挑战,通过分布式计算和数据标准化解决。未来将继续深入研究Pandas与其他先进技术的结合,提升决策支持能力。
|
11天前
|
存储 数据可视化 数据挖掘
实战案例:Pandas在金融数据分析中的应用
【4月更文挑战第16天】本文通过实例展示了Pandas在金融数据分析中的应用。案例中,一家投资机构使用Pandas加载、清洗股票历史价格数据,删除无关列并重命名,将日期设为索引。接着,数据被可视化以观察价格走势,进行基本统计分析了解价格分布,以及计算移动平均线来平滑波动。Pandas的便捷功能在金融数据分析中体现出高效率和实用性。
|
18天前
|
数据采集 数据挖掘 数据处理
Pandas库在数据分析中的作用
【4月更文挑战第9天】Pandas,一个基于NumPy的数据分析Python库,以强大的数据处理和便捷的接口闻名。它包含两个核心数据结构:Series(一维标签数组)和DataFrame(二维表格)。Pandas支持数据导入/导出(如CSV、Excel),数据清洗(处理缺失值和重复值),描述性统计分析,分组聚合,以及与Matplotlib等库集成实现数据可视化。通过多索引和层次化索引,Pandas能灵活处理复杂数据集,是数据科学领域的关键工具。本文旨在帮助读者理解并运用Pandas进行高效数据分析。
|
17天前
|
数据采集 数据可视化 数据挖掘
深入浅出:使用Python进行数据分析
在这篇文章中,我们将探索Python在数据分析中的应用,介绍几个关键的库,如Pandas、NumPy、Matplotlib,以及如何使用它们进行有效的数据处理和可视化。本文旨在为初学者提供一个清晰、简洁的指南,让读者能够快速掌握使用Python进行数据分析的基本技能,并通过一个实例加深理解。不同于其他文章的冗长解释和复杂示例,我们将以最直接、易懂的方式,让你迅速上手,即使是完全没有编程背景的读者也能轻松跟上。
|
2天前
|
数据采集 数据可视化 数据挖掘
R语言与Python:比较两种数据分析工具
【4月更文挑战第25天】R语言和Python是目前最流行的两种数据分析工具。本文将对这两种工具进行比较,包括它们的历史、特点、应用场景、社区支持、学习资源、性能等方面,以帮助读者更好地了解和选择适合自己的数据分析工具。
|
8天前
|
机器学习/深度学习 数据挖掘 计算机视觉
python数据分析工具SciPy
【4月更文挑战第15天】SciPy是Python的开源库,用于数学、科学和工程计算,基于NumPy扩展了优化、线性代数、积分、插值、特殊函数、信号处理、图像处理和常微分方程求解等功能。它包含优化、线性代数、积分、信号和图像处理等多个模块。通过SciPy,可以方便地执行各种科学计算任务。例如,计算高斯分布的PDF,需要结合NumPy使用。要安装SciPy,可以使用`pip install scipy`命令。这个库极大地丰富了Python在科学计算领域的应用。
12 1
|
9天前
|
数据可视化 数据挖掘 Python
Python中数据分析工具Matplotlib
【4月更文挑战第14天】Matplotlib是Python的数据可视化库,能生成多种图表,如折线图、柱状图等。以下是一个绘制简单折线图的代码示例: ```python import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] plt.figure() plt.plot(x, y) plt.title('简单折线图') plt.xlabel('X轴') plt.ylabel('Y轴') plt.show() ```
13 1
|
12天前
|
Python 数据挖掘 存储
Python 数据分析(PYDA)第三版(七)(4)
Python 数据分析(PYDA)第三版(七)
34 1