租房数据分析示例

学习目标

  • 能够完成租房数据分析的案例

1. 链家租房数据分析示例

1.1 数据加载和查看

1)加载 LJdata.csv 数据集

house_data = pd.read_csv('./data/LJdata.csv')
house_data.head()

img

2)查看 house_data 数据的列标签

# 查看 house_data 数据的列标签
house_data.columns

img

3)重新设置 house_data 数据的列标签

house_data.columns = ['district', 'address', 'title', 'house_type', 'area', 
                      'price', 'floor', 'build_time', 'direction', 'update_time', 
                      'view_num', 'extra_info', 'link']
house_data.head()

img

4)查看 house_data 数据的行列数量

house_data.shape

img

5)查看数据集基本信息:每个字段值的数量、是否非空值,以及该字段的数据类型

house_data.info()

img

6)查看数据集中,所有数值型字段的基本统计信息

house_data.describe()

img

7)查看数据集中,所有非数值型字段的基本统计信息

import numpy as np
house_data.describe(include=[np.object_, pd.Categorical])

img

# 将 DataFrame 进行转置操作(行列互换)
house_data.describe(include=[np.object_, pd.Categorical]).T

img

1.2 租房数据简单分析

分析需求

示例1:查看房屋租金的最高价格、最低价格、平均值和中位数
示例2:找到租金最低和最高的房子的全部信息
示例3:统计看房人数最多的前 20 的区域
示例4:查看看房人数最多的房屋朝向
示例5:查看出租房屋的户型分布情况
示例6:查看热门小区(即:看房人数 TOP5 的小区)
示例7:查看出租房源最多的小区
示例8:查看望京租房价格在2000以下的房屋信息
示例9:查看租房价格在2000以下的房屋信息,并按照价格从低到高排序

1)示例1:查看房屋租金的最高价格、最低价格、平均值和中位数

house_data['price'].max()
house_data['price'].min()
house_data['price'].mean()
house_data['price'].median() # 中位数

img

2)示例2:找到租金最低和最高的房子的全部信息

# 获取租金最低的房子信息
house_data.sort_values('price').head(1)# house_data[house_data['price']==house_data['price'].min()]
house_data[house_data.price==house_data.price.min()]
或
house_data.nsmallest(1, 'price')

img

# 获取租金最高的房子信息
house_data.sort_values('price').tail(1)# house_data[house_data['price']==house_data['price'].max()]
house_data[house_data.price==house_data.price.max()]
或
house_data.nlargest(1, 'price')

img

3)示例3:统计看房人数最多的前 20 的区域

result = house_data.groupby('district')['view_num'].sum().sort_values(ascending=False).head(20)
result

img

%matplotlib inline
import matplotlib.pyplot as plt
# Mac 设置显示中文
plt.rcParams['font.sans-serif'] = 'Arial Unicode MS'
# Windows 设置显示中文
# plt.rcParams['font.sans-serif'] = 'SimHei'

result.plot.bar(figsize=(20, 8))

img

4)示例4:查看看房人数最多的房屋朝向

house_data.groupby('direction')['view_num'].sum().sort_values(ascending=False).head(1)
或
house_data.groupby('direction')['view_num'].sum().nlargest(1)

img

5)示例5:查看出租房屋的户型分布情况

result = house_data.groupby('house_type')['title'].count().sort_values(ascending=False)
result.plot.bar(figsize=(20, 8))

img

6)示例6:查看热门小区(即:看房人数 TOP5 的小区)

result = house_data.groupby('address')['view_num'].sum().sort_values(ascending=False).head()
result.plot.bar()

img

7)示例7:查看出租房源最多的小区

house_data.groupby('address')['title'].count().nlargest(n=1)

img

8)示例8:查看望京租房价格在2000以下的房屋信息

house_data.query('district=="望京租房" & price<=2000')
或
house_data[(house_data['district']=='望京租房') & (house_data['price'] <= 2000)]

img

9)示例9:查看租房价格在2000以下的房屋信息,并按照价格从低到高排序

house_data.query('price <= 2000').sort_values('price')
或
house_data[house_data['price'] <= 2000].sort_values('price')

img

总结

  • 能够完成租房数据分析的案例