租房数据分析示例
学习目标
- 能够完成租房数据分析的案例
1. 链家租房数据分析示例
1.1 数据加载和查看
1)加载 LJdata.csv
数据集
house_data = pd.read_csv('./data/LJdata.csv')
house_data.head()
2)查看 house_data
数据的列标签
# 查看 house_data 数据的列标签
house_data.columns
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()
4)查看 house_data
数据的行列数量
house_data.shape
5)查看数据集基本信息:每个字段值的数量、是否非空值,以及该字段的数据类型
house_data.info()
6)查看数据集中,所有数值型字段的基本统计信息
house_data.describe()
7)查看数据集中,所有非数值型字段的基本统计信息
import numpy as np
house_data.describe(include=[np.object_, pd.Categorical])
# 将 DataFrame 进行转置操作(行列互换)
house_data.describe(include=[np.object_, pd.Categorical]).T
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() # 中位数
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')
# 获取租金最高的房子信息
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')
3)示例3:统计看房人数最多的前 20 的区域
result = house_data.groupby('district')['view_num'].sum().sort_values(ascending=False).head(20)
result
%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))
4)示例4:查看看房人数最多的房屋朝向
house_data.groupby('direction')['view_num'].sum().sort_values(ascending=False).head(1)
或
house_data.groupby('direction')['view_num'].sum().nlargest(1)
5)示例5:查看出租房屋的户型分布情况
result = house_data.groupby('house_type')['title'].count().sort_values(ascending=False)
result.plot.bar(figsize=(20, 8))
6)示例6:查看热门小区(即:看房人数 TOP5 的小区)
result = house_data.groupby('address')['view_num'].sum().sort_values(ascending=False).head()
result.plot.bar()
7)示例7:查看出租房源最多的小区
house_data.groupby('address')['title'].count().nlargest(n=1)
8)示例8:查看望京租房价格在2000以下的房屋信息
house_data.query('district=="望京租房" & price<=2000')
或
house_data[(house_data['district']=='望京租房') & (house_data['price'] <= 2000)]
9)示例9:查看租房价格在2000以下的房屋信息,并按照价格从低到高排序
house_data.query('price <= 2000').sort_values('price')
或
house_data[house_data['price'] <= 2000].sort_values('price')
总结
- 能够完成租房数据分析的案例