python带你对北京二手房进行数据分析,看看大概都什么价位
创始人
2024-03-15 10:24:21

前言

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

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

准备

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

然后打开我们的数据分析工具: 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

=

2.查看表格数据描述

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

df.describe()

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

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

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

df.isnull().sum()

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

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

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

方便后面进行填充

df['电梯'].unique()

5.缺失值填充

用“未知”填充缺失值

缺失值的处理方式有两种

第一种删除,第二种填补

  • 缺失值少,就直接删除

  • 缺失值多,就进行填补

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

结论

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

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

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

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

推荐往期文章

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

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

python小介绍:

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

python数据分析前景:

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

python基础自测题:

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

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

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

尾语

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

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

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

—— 心灵鸡汤

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

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

相关内容

热门资讯

应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...