美文网首页
天池短租数据简单分析

天池短租数据简单分析

作者: butters001 | 来源:发表于2020-09-09 16:57 被阅读0次

导入下面代码所需依赖包

import math
import pandas as pd
import numpy as np
import plotly.graph_objects as go
from plotly.subplots import make_subplots

加载数据

source_data = pd.read_csv('./source_data/listings.csv')
# 查看数据
source_data.head()
image.png

每一列的数据类型

source_data.dtypes
image.png

修改列名 删除两列

source_data.columns = ['id', 'name', '房主id', '房主名', '行政区组', '行政区名', '纬度', '经度', '房屋类型', '价格', '最低入住天数', '评论数量', '最后评论时间', '每月评论数', 'calculated_host_listings_count', '可提供天数365']

del source_data['行政区组']
del source_data['calculated_host_listings_count']

按行政区分组 查看每个区的房屋出租数量

source_data.loc[:, ['行政区名']].groupby('行政区名').size()
image.png

行政区名 统一命名某某区 对房屋类型进行汉化

for neighbourhood in source_data['行政区名'].unique():
    split_res = neighbourhood.split('/')
    if len(split_res) == 2:
        source_data.replace(neighbourhood, split_res[0].strip(), inplace=True)
        
source_data['行政区名'].replace('县', '区', regex=True, inplace=True)

source_data.replace('Entire home/apt', '整套房子/公寓', inplace=True)
source_data.replace('Private room', '私人房间', inplace=True)
source_data.replace('Shared room', '共享房间', inplace=True)

source_data
image.png

再次查看每个区的房屋数量

neighbourhood_group_count = source_data.loc[:, ['行政区名']].groupby('行政区名').size()
neighbourhood_group_count
image.png

每个区房源数量绘图

data = go.Bar(name='北京市房源数量分布图', 
              x=neighbourhood_group_count.index.values, 
              y=neighbourhood_group_count.values, 
              text=neighbourhood_group_count.values,
              texttemplate='%{text:.3s}',
              textposition='outside')
fig = go.Figure(data=data)

# 降序
fig.update_layout(xaxis={'categoryorder':'total descending'})
fig.show()
image.png

每个区的房源价格箱型图

fig = go.Figure()
for neighbourhood in source_data['行政区名'].unique():
    y = source_data[source_data['行政区名']==neighbourhood]['价格'].values
    box = go.Box(y=y, name=neighbourhood)
    fig.add_trace(box)
fig.show()
image.png

剔除异常值,重新绘制箱形图 异常值设置为一万以上

# 获取价格一万以内的数据
price_in_10k = source_data[source_data['价格'] <= 10000]

fig = go.Figure()
for neighbourhood in price_in_10k['行政区名'].unique():
    y = price_in_10k[price_in_10k['行政区名']==neighbourhood]['价格'].values
    box = go.Box(y=y, name=neighbourhood)
    fig.add_trace(box)
fig.show()
image.png

感觉异常值还是多 设置4000以下看看

print('4000以内价格的房屋数量: %s ' % source_data[source_data['价格'] <= 4000].shape[0])
print('4000以外价格的房屋数量: %s ' % source_data[source_data['价格'] > 4000].shape[0])

# 获取价格四千以内的数据
price_in_4k = source_data[source_data['价格'] <= 4000]
fig = go.Figure()
for neighbourhood in price_in_4k['行政区名'].unique():
    y = price_in_4k[price_in_4k['行政区名']==neighbourhood]['价格'].values
    box = go.Box(y=y, name=neighbourhood)
    fig.add_trace(box)
fig.show()
image.png

密云 怀柔 延庆价格怎么这么高。。。单拿出来观察一下

print('密云', source_data[source_data['行政区名'] == '密云区']['价格'].describe(), '\r\n')
print('朝阳', source_data[source_data['行政区名'] == '朝阳区']['价格'].describe(), '\r\n')
print('怀柔', source_data[source_data['行政区名'] == '怀柔区']['价格'].describe())
image.png

查看一下房屋类型占比

# 先按行政区进行分组 再按房屋类型进行分组
groupby_neighbourhood_price = source_data.loc[:, ['行政区名', '房屋类型', 'id']].groupby(['行政区名', '房屋类型']).count()
groupby_neighbourhood_price
image.png

重制索引

groupby_neighbourhood_price.reset_index(inplace=True)
neighbourhoods = groupby_neighbourhood_price['行政区名'].unique()
rows_num = math.ceil(len(neighbourhoods)/3)
cols_num=3

fig = make_subplots(rows_num, cols_num, 
                    specs=[[{'type':'domain'}]*3]*rows_num, 
                    subplot_titles=neighbourhoods)

labels = ['整套房子/公寓', '私人房间', '共享房间']

row = 0
col = 1
for index, neighbourhood in enumerate(neighbourhoods):
    values = []
    for label in labels:
        value = groupby_neighbourhood_price[(groupby_neighbourhood_price['行政区名']==neighbourhood) & (groupby_neighbourhood_price['房屋类型']==label)].id.values
        value = 0 if not value else value[0]
        values.append(value)
    data = go.Pie(labels=labels, values=values, scalegroup=index, name=neighbourhood)
    # "radial", "tangential" “径向”,“切向”
    if index % 3 == 0:
        row += 1
        col = 1
    fig.add_trace(data, row, col)
    col += 1
fig.show()
image.png

相关文章

  • 天池短租数据简单分析

    导入下面代码所需依赖包 加载数据 每一列的数据类型 修改列名 删除两列 按行政区分组 查看每个区的房屋出租数量 行...

  • Python入门学习之数据分析实战获取数据

    想用一个完整的案例讲解Python数据分析的整个流程和基础知识,实际上以一个数据集为例,数据集是天池上的一个短租数...

  • Airbnb 短租数据集分析

    数据地址:Airbnb短租数据集分析[https://tianchi.aliyun.com/competition...

  • BI工具之Superset搭建及简单使用

    一、简介 曾用名Caravel, Panoramix, 是由Airbnb(知名在线房屋短租公司)开源的数据分析与可...

  • docker搭建superset搭建及其使用

    简介 曾用名Caravel, Panoramix, 是由Airbnb(知名在线房屋短租公司)开源的数据分析与可视化...

  • docker安装superset

    简介 曾用名Caravel, Panoramix, 是由Airbnb(知名在线房屋短租公司)开源的数据分析与可视化...

  • 产品课程小作业-产品调研2(功能点调研)

    认真调研 airbnb和蚂蚁短租的注册流程:1、分别做airbnb和蚂蚁短租的注册流程分析2、简要分析两者的相同点...

  • 部分工作文档记录

    【竞品分析】蚂蚁短租VS小猪短租:一份房屋共享经济行业的竞品分析 【项目简介、复盘】Magic产品回顾 【致悦AP...

  • 2018-11-07

    途家、小猪短租竞品分析|头部市场形成后,小猪如何更进一步 本文大纲如下: 1.分析目的 通过分析当前在线短租市场现...

  • 产品调研 蚂蚁短租,airbnb

    调研 airbnb和蚂蚁短租的注册流程:1、分别做airbnb和蚂蚁短租的注册流程分析2、简要分析两者的相同点和不...

网友评论

      本文标题:天池短租数据简单分析

      本文链接:https://www.haomeiwen.com/subject/rdaeektx.html