简单分析贝壳在售厦门二手房数据(一)

这是我的python数据可视化练手项目,数据从贝壳厦门二手房网爬取,数据已经经过清理,并且补充了经纬和地铁/BRT站信息,系列文章:

一、主要数据概览

# 导包
import pandas as pd

# 主要数据概览
data_clean_with_stations= pd.read_csv("data_clean_with_stations.csv", index_col=0)
# print(data_clean_with_stations[['area', 'price', 'unit_price', 'year_build']].describe())

显示如下:

简单分析贝壳在售厦门二手房数据(一)

对这张表我的一些疑问和想法,将一一尝试解答:

面积(area)方面:

  1. 刚需的主流面积是多少?
  2. 是否存在普适的“一次到位”的房子?
  3. 房子面积有性价比区间吗?

价格(price 和 unitprice)方面:

  1. 能否一张图看懂厦门房价?
  2. 地铁房怎么个贵法?

建成年份(year_build)方面:

  1. 厦门房子量价齐飞?
  2. 厦门房子越来越小?

二、两室两厅的面积占比统计

2.1 绘图

饼图最适合统计占比,我们用pycharts来绘制:

    # 导可视化工具包
    import pyecharts.options as opts
    from pyecharts.charts import Grid, Boxplot, Scatter, Pie, Bar, Line

    # 过滤和排序
    data_filterd = data_clean_with_stations[(data_clean_with_stations.rooms == "2室2厅1卫")]
    data_sorted = data_filterd.sort_values(by='area')

    # 添加分bin字段'area_bin'对面积分bin,
    bins = [0]
    for i in range(0, 10):
        bins.append((i+1)*20)
    area_bin = pd.cut(data_sorted.area, bins)
    data_sorted['area_bin'] = area_bin
    # 分组获得数据
    area_grouped = data_sorted.groupby('area_bin')['area'].count()
    # 字段list
    intervals = ['%s~%s㎡' % (str(i.left), str(i.right)) for i in area_grouped.index]
    # 值list
    counts = list(area_grouped.astype('float64'))

    area_group = (
        Pie(opts.InitOpts(width="800px", height="600px", theme=ThemeType.LIGHT))
            .add("", [list(z) for z in zip(intervals, counts)])
            .set_global_opts(title_opts=opts.TitleOpts(title="在售二手2室2厅1卫房屋面积分布"),
                             legend_opts=opts.LegendOpts(type_="scroll", pos_right="left", orient="vertical"),
                             toolbox_opts=None)
            .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
    )
    area_group.render()

2.2 结果

Awesome-pyecharts

2.3 分析

  • 数据中80~100m占了绝大部分,这类数字有指导意义,比如说扫地机器人的设计续航必须要满足。

4.4 其他猜想

  • 数据中存在40平以下的房子超紧凑两室两厅,这些房子是随着近年房价高企才涌现的吗?
  • 这些超紧凑房子的位置是怎么分布的?单价如何?投资价值相比主流面积如何?

三、存在一步到位的房子吗?

3.1 绘图

对不同面积的房子持有时间的统计应该能回答这个问题,不过我们收集到的只有(上次交易时间)和(上架时间)数据,相减得到的是大概的从入手到想出手的时间差,就叫他“伪持有时间”吧,我们用直方图来反应”伪持有时间”和房屋面积的关系。

# 排序
data_sorted = data_clean_with_lng_lat.sort_values(by='area')
# 过滤'time_last_transaction'字段
data_filterd = data_sorted[data_sorted['time_last_transaction'].notna()]
data_filterd = data_filterd[data_filterd['time_on_sold'].notna()]
# 重建索引
data_filterd = data_filterd.reset_index(drop=True)

# 增加'area_bin'分bin字段
bins = [0]
for i in range(0, 15):
bins.append((i + 1) * 20)
area_bin = pd.cut(data_filterd.area, bins)
data_filterd['area_bin'] = area_bin

# 添加房屋持有时间字段
list_days_hold = []
for i in range(0, len(data_filterd)):
date_last_tras = datetime.strptime(data_filterd.loc[i]['time_last_transaction'], '%Y年%m月%d日').date()
time_on_sold = datetime.strptime(data_filterd.loc[i]['time_on_sold'], '%Y年%m月%d日').date()
# date_now = datetime.today().date()
days_hold = time_on_sold - date_last_tras
list_days_hold.append(days_hold.days)
data_filterd['days_hold'] = list_days_hold


# 分组获得数据
area_grouped = data_filterd.groupby('area_bin')['days_hold'].mean()
# 字段list
intervals = ['%s~%s㎡' % (str(i.left), str(i.right)) for i in area_grouped.index]
# 值list
days_hold_avg_list = list(area_grouped.astype('float64'))


bar = (
Bar(init_opts=opts.InitOpts(width="800px", height="600px", theme=ThemeType.LIGHT))
.add_xaxis(intervals)
.add_yaxis("持有天数", days_hold_avg_list, category_gap=1)
.set_global_opts(title_opts=opts.TitleOpts(title="房屋面积持有时间的关系"),
legend_opts=opts.LegendOpts(type_="scroll", pos_right="middle", orient="vertical"),
datazoom_opts=[opts.DataZoomOpts(type_="slider")], toolbox_opts=opts.ToolboxOpts(),
tooltip_opts=opts.TooltipOpts(is_show=True, axis_pointer_type="line", trigger="item",
formatter='{c}'))
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
)
bar.render()

3.2 结果

Awesome-pyecharts

3.3 分析

  • 不同面积的房子的“伪持有时间”并没有形成明显规律,而是都在6~7年浮动,考虑到数据样本不够多,我们甚至可以忽略这些差异。
  • 人性贪婪,当然是越大越好?

3.4 其他猜想

  • 特定年龄段的人群对不同面积的房子持有时间是否有规律?
  • 面积和流通性关联如何,哪些面积区间换手率最高?

四、房子面积真的有性价比区间

4.1 绘图

拟合平均单价-面积区间曲线,尝试找到规律。

# 排序并查看数据
data_sorted = data_clean_with_lng_lat.sort_values(by='area')
# print(data_sorted[0: 10])
# 增加'area_bin'分bin字段
bins = [20]
# 仅统计20~200平米的房子
for i in range(4, 40):
bins.append((i + 1) * 5)
area_bin = pd.cut(data_sorted.area, bins)
data_sorted['area_bin'] = area_bin

# 分组获得数据
area_grouped = data_sorted.groupby('area_bin')['unit_price'].mean()
# 字段list(横坐标)
interval_list = ['≈%s㎡' % str(i.right) for i in area_grouped.index]
# 值list(纵坐标坐标)
avg_price_list = list(area_grouped.astype('float64'))

print(interval_list)

line = (
Line()
.set_global_opts(
tooltip_opts=opts.TooltipOpts(is_show=False),
xaxis_opts=opts.AxisOpts(type_="category"),
yaxis_opts=opts.AxisOpts(
type_="value",
axistick_opts=opts.AxisTickOpts(is_show=True),
splitline_opts=opts.SplitLineOpts(is_show=True),
),
)
.add_xaxis(xaxis_data=interval_list)
.add_yaxis(
series_name="二手房平均单价和面积",
y_axis=avg_price_list,
symbol="emptyCircle",
is_symbol_show=True,
label_opts=opts.LabelOpts(is_show=False),
is_smooth=True
)
)
line.render()

4.2 结果

Awesome-pyecharts

4.3 分析

  • 90以下单价随面积缩小而增长,推测是受“学位房”影响
  • 90平左右是最佳性价比点,90~120平时性价比区间,推测该区间开发商主要建“经济型”的“刚需房”
  • 120平以上房子单价反而高,推测该区间开发商主要建各方面优越的“豪宅”,并且地段较好

4.4 其他猜想

  • 岛外四区房价较低,该结果是否受岛外房子90~120平占比较多影响?
  • “豪宅”分布在哪?是否对特定行业门店选址有指导意义?

爱心提示:本文仅当个人(非专业人士)练手项目(数据少且不可靠),不作任何投资建议(手动滑稽)。

分析part2:简单分析贝壳在售厦门二手房数据(二)

原创文章,作者:10bests,禁止任何形式转载:https://www.10bests.com/beike-house-info-analysis-part1/

(1)
上一篇 2021年6月26日 上午12:51
下一篇 2021年6月26日 上午4:45

相关推荐

  • 百度API补完厦门二手房经纬度并找到最近的地铁站

    经纬度是二手房的重要信息,有了这些数据我们才能计算房子到最近地铁站的距离,轨道交通是影响房价很重要的数据。贝壳二手房详情页上的房子位置信息是js加载的,我们不能直接拿到,所以只能找…

    2021年6月26日
  • 美味可口冬日汤圆十大排行

    汤圆是元宵节的节日食品,也是冬日里的暖心之物。汤圆在速冻食品里有许多牌子可以选择,那么,哪些冬日汤圆美味可口呢?下面小编为您推荐美味可口冬日汤圆十大排行! 美味可口冬日汤圆十大排行…

    2021年11月7日
  • 简单分析贝壳在售厦门二手房数据(二)

    这是我的python数据可视化练手项目,数据从贝壳厦门二手房网爬取,数据已经经过清理,并且补充了经纬和地铁/BRT站信息,这是数据分析的第二部分,系列文章: Scrapy-Redi…

    2021年6月26日
  • Scrapy-Redis爬虫贝壳网所有在售厦门二手房信息

    贝壳网的反爬不算厉害,做好Referer和随机UA,并适当限制并发基本就没问题了。 分享代码,仅做学习交流用途,系列文章: 本文->Scrapy-Redis爬虫贝壳网所有在售…

    2021年6月25日
  • 贝壳在售厦门二手房数据建模

    还在写,先发布了,以表决心! 系列文章: Scrapy-Redis爬虫贝壳网所有在售厦门二手房信息 初步清理贝壳网爬取的厦门二手房信息 百度API补完厦门二手房经纬度并找到最近的地…

    2021年6月26日
  • 初步清理贝壳网爬取的厦门二手房信息

    接上文Scrapy-Redis爬虫贝壳网所有在售厦门二手房信息,总共爬到2.25K的在售二手房信息,这篇文章初步清晰数据,为进一步分析做准备,本文仅做交流学习用途。 系列文章: S…

    2021年6月25日

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注