python带你对北京二手房进行数据分析,看看大概都什么价位

前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

python带你对北京二手房进行数据分析,看看大概都什么价位_第1张图片

今天我们的目的想必大家看标题就能明白了~

准备

首先,我们要提前准备好数据

python带你对北京二手房进行数据分析,看看大概都什么价位_第2张图片

然后打开我们的数据分析工具: Jupyter

代码及效果展示

导入模块

# 导入做数据处理的模块pandas
import pandas as pd
# 导入绘图模块pyecharts,*号代表模块里面的所有图形
from pyecharts.charts import *
from pyecharts import options as opts

数据处理

1.读取数据

导入数据

设置编码encoding='gbk'

设置解释器为engine='python'

df = pd.read_csv('二手房数据.csv', encoding='gbk', engine='python')
df

python带你对北京二手房进行数据分析,看看大概都什么价位_第3张图片

2.查看表格数据描述

describe可以直接计算数值类型数据的平均值,标准差

df.describe()

python带你对北京二手房进行数据分析,看看大概都什么价位_第4张图片

3.查看表格是否有数据缺失

通过isnull查找出包含缺失值的字段

然后进行求和,计算每一列的缺失数据的数量

df.isnull().sum()

python带你对北京二手房进行数据分析,看看大概都什么价位_第5张图片

可以看到电梯数据缺失8257行

4.查看电梯列共有几种值

通过unique可以统计数据里面出现了几种值

方便后面进行填充

df['电梯'].unique()

5.缺失值填充

用“未知”填充缺失值

缺失值的处理方式有两种

第一种删除,第二种填补

  • 缺失值少,就直接删除

  • 缺失值多,就进行填补

这里缺失值占比较多,所以进行填补

df['电梯'].fillna('未知',inplace=True)
# 填补之后查看是否还有缺失值
df.isnull().sum()

python带你对北京二手房进行数据分析,看看大概都什么价位_第6张图片

6.查看房屋朝向数据

查看朝向值的种类

df['朝向'].unique()

朝向数据包含了‘西南’和‘南西’两个方向,将其合并为一个方向‘西南’:

# replace(被替换的值,替换后的值):
df['朝向'] = df['朝向'].str.replace('南西','西南')
df['朝向'].unique()

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

博主文章素材、解答、源码、教程领取处:点击

Pyecharts可视化

1.统计各城区二手房数据

# 这里我们要用到分组
g = df.groupby('市区')
df_region = g.count()['小区']
region = df_region.index.tolist()
count = df_region.values.tolist()
df_region

python带你对北京二手房进行数据分析,看看大概都什么价位_第7张图片

1.各城区二手房数量北京市地图
# 各城区二手房数量北京市地图
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()

python带你对北京二手房进行数据分析,看看大概都什么价位_第8张图片

2.各城区二手房数量-平均价格柱状图
df_price = g.mean()['价格(万元)']
df_price = round(df_price,2)
price = 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(
        title_opts=opts.TitleOpts(title='各城区二手房数量-平均价格柱状图'),
        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()

python带你对北京二手房进行数据分析,看看大概都什么价位_第9张图片

3.二手房价格最低Top15
top_price = df.sort_values(by='价格(万元)')[:15]
top_price

python带你对北京二手房进行数据分析,看看大概都什么价位_第10张图片

area0 = top_price['小区'].values.tolist()
count = top_price['价格(万元)'].values.tolist()

bar = (
    Bar()
    .add_xaxis(area0)
    .add_yaxis('数量', count, category_gap='50%')
    .set_global_opts(
        yaxis_opts=opts.AxisOpts(name='价格(万元)'),
        xaxis_opts=opts.AxisOpts(name='数量'),
        datazoom_opts=opts.DataZoomOpts(type_='slider')
    )
)
bar.render_notebook()

python带你对北京二手房进行数据分析,看看大概都什么价位_第11张图片

4 二手房总价与面积散点图
s = (
    Scatter()
    .add_xaxis(df['面积(㎡)'].values.tolist())
    .add_yaxis('',df['价格(万元)'].values.tolist())
    .set_global_opts(xaxis_opts=opts.AxisOpts(type_='value'))
)
s.render_notebook()

python带你对北京二手房进行数据分析,看看大概都什么价位_第12张图片

5.房屋朝向饼图
g = df.groupby('朝向')
g.count()['小区']

python带你对北京二手房进行数据分析,看看大概都什么价位_第13张图片

df_direction =  g.count()['小区']
df_direction

python带你对北京二手房进行数据分析,看看大概都什么价位_第14张图片

directions = df_direction.index.tolist()
count = df_direction.values.tolist()

c1 = (
    Pie(init_opts=opts.InitOpts(
            width='800px', height='600px',
            )
       )
        .add(
        '',
        [list(z) for z in zip(directions, count)],
        radius=['20%', '60%'],
        center=['40%', '50%'],
#         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="80%",pos_top="25%",orient="vertical")
                        )
        .set_series_opts(label_opts=opts.LabelOpts(formatter='{b}:{c} ({d}%)'),position="outside")
    )
c1.render_notebook()

python带你对北京二手房进行数据分析,看看大概都什么价位_第15张图片

6.装修情况/有无电梯玫瑰图
g1 = df.groupby('装修情况')
g1.count()['小区']
g2 = df.groupby('电梯')
g2.count()['小区']

df_fitment =  g1.count()['小区']
df_direction =  g2.count()['小区']
df_fitment

python带你对北京二手房进行数据分析,看看大概都什么价位_第16张图片

fitment = df_fitment.index.tolist()
count1 = df_fitment.values.tolist()

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

python带你对北京二手房进行数据分析,看看大概都什么价位_第17张图片

7.二手房楼层分布柱状图
g = df.groupby('楼层')
df_floor = g.count()['小区']
df_floor

python带你对北京二手房进行数据分析,看看大概都什么价位_第18张图片

floor = df_floor.index.tolist()
count = df_floor.values.tolist()
bar = (
    Bar()
    .add_xaxis(floor)
    .add_yaxis('数量', count)
    .set_global_opts(
        title_opts=opts.TitleOpts(title='二手房楼层分布柱状缩放图'),
        yaxis_opts=opts.AxisOpts(name='数量'),
        xaxis_opts=opts.AxisOpts(name='楼层'),
        datazoom_opts=opts.DataZoomOpts(type_='slider')
    )
)
bar.render_notebook()

python带你对北京二手房进行数据分析,看看大概都什么价位_第19张图片

8.房屋面积分布柱状图
area_level = [0, 50, 100, 150, 200, 250, 300, 350, 400, 1500]    
label_level = ['小于50', '50-100', '100-150', '150-200', '200-250', '250-300', '300-350', '350-400', '大于400']    
jzmj_cut = pd.cut(df['面积(㎡)'], area_level, labels=label_level)        
df_area = jzmj_cut.value_counts()
df_area

python带你对北京二手房进行数据分析,看看大概都什么价位_第20张图片

area = df_area.index.tolist()
count = df_area.values.tolist()

bar = (
    Bar()
    .add_xaxis(area)
    .add_yaxis('数量', count)
    .reversal_axis()
    .set_series_opts(label_opts=opts.LabelOpts(position="right"))
    .set_global_opts(
        title_opts=opts.TitleOpts(title='房屋面积分布纵向柱状图'),
        yaxis_opts=opts.AxisOpts(name='面积(㎡)'),
        xaxis_opts=opts.AxisOpts(name='数量'),
    )
)
bar.render_notebook()

python带你对北京二手房进行数据分析,看看大概都什么价位_第21张图片

结论

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

东城区、西城区和海淀区二手房平均售价最高,均在800万元以上。

二手房面积多集中于0-400平米,价格在0-3000万元居多。

房屋朝向约50%是坐北朝南的

推荐往期文章

博主所有文章素材、解答、源码、教程领取处:点击

对python感兴趣的小伙伴也可以看一下博主其他相关文章哦~

python小介绍:

python是什么?工作前景如何?怎么算有基础?爬数据违法嘛?。。

python数据分析前景:

用python分析“数据分析”到底值不值得学习,以及学完之后大概能拿到多少工资

python基础自测题:

Python 800 道习题 (°ー°〃) 测试你学废了嘛

最后推荐一套Python视频给大家,希望对大家有所帮助:

全套教程!你和大佬只有一步之遥【python教程】

尾语

要成功,先发疯,下定决心往前冲!

学习是需要长期坚持的,一步一个脚印地走向未来!

未来的你一定会感谢今天学习的你。

—— 心灵鸡汤

本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦

问题解答 · 源码获取 · 技术交流 · 抱团学习请联系

你可能感兴趣的:(数据分析,python,数据分析,数据挖掘)