我报名参加金石方案1期应战——瓜分10万奖池,这是我的第8篇文章,点击查看活动详情
1. 引言
1.1 项目需求:
本节,咱们持续完善北京市租房数据处理实战,数据集基本处理请参考本系列上篇文章:【数据处理】北京市租房事例实战(1) – ()。
本节将主要任务是对项目进行数据预处理,统一一下表格中某些列的表达方式,比如将“几房间”替换成“几室”,转化数据类型,便利后续进行数据处理。
2. 事例演示
2.1 户型表达方式替换
在“户型”一列中,大部分数据显现的是“室厅”,只要个别数据显现的是“房间”“卫”,为了便利后期的运用,需求将“房间”替换成“室”,以确保数据的一致性。
- pandas.replace()方法可以完结替换数据的操作
- 运用for循环遍历,对每个值进行替换并追加到新的空数组内
- 将新的数组赋值给表格中的指定列,完结替换
获取数据集:
file_data = pd.read_csv("链家北京租房数据.csv")
file_data
原数据集大体内容展现如下:原数据集“户型那一列”表达方式不同意,需求进行替换。
# 获取户型
house_data = file_data["户型"]
temp_list = [] # 创建空列表
for i in house_data:
# print(i)
new_info = i.replace("房间", "室") # 将房间替换成室
temp_list.append(new_info)
temp_list
部分运转成果展现如下:
替换原表格数据:
# 替换原表格
file_data.loc[:,"户型"] = temp_list
file_data
运转成果如下所示:可以看出,“户型”那一列已经被替换。
2.2 房源数量&位置散布分析
如果希望计算各个区域的房源数量,以及查看这些房子的散布情况,则需求先获取各个区的房源,为了实现这个需求,可以将整个数据依照“区域”一列进行分组。
为了可以精确地看到各区域的房源数量,这儿只需求展现“区域”和是“数量”这两列的数据即可。因而,先创建一个空的DataFrame目标,然后再将各个区域计算的总数量作为该目标的数据进行展现。
- 新建DataFrame
- file_data[“区域”].unique():筛选出区域,相同的区域保留一个
- DataFrame包含”区域和”数量”两列
new_df = pd.DataFrame({"区域": file_data["区域"].unique(), "数量":[0]*13})
new_df
运转成果:运转成果部分展现
然后,咱们运用分组聚合计数的方法,来计算每个区域的房源数量
- groupby(by=”区域”):以原表格中“区域”这一列进行分组
- .count()将分组成果中的每组数据进行计数(每个类别有多少样本)
# 获取每个区域房源数量
# 分组聚合 计数聚合
area_count = file_data.groupby(by="区域").count()
接下来,为列赋值,将分组的成果赋值给刚才新建的DataFrame中的“数量”那一列
# 为列赋值
new_df["数量"] = area_count.values
new_df
运转成果如下图所示:可以看出已经分组好了并添加到DataFrame中了,但是还没有排序。
对“数量”那一列进行排序:
- 降序摆放:ascending=False
# 排序
# 降序摆放
new_df.sort_values(by="数量", ascending=False)
运转成果如下图所示:可以看出区域的房源量已经从大到小排序了。