我报名参加金石方案1期应战——瓜分10万奖池,这是我的第8篇文章,点击查看活动详情

1. 引言

1.1 项目需求:

本节,咱们持续完善北京市租房数据处理实战,数据集基本处理请参考本系列上篇文章:【数据处理】北京市租房事例实战(1) – ()。

本节将主要任务是对项目进行数据预处理,统一一下表格中某些列的表达方式,比如将“几房间”替换成“几室”,转化数据类型,便利后续进行数据处理。

2. 事例演示

2.1 户型表达方式替换

在“户型”一列中,大部分数据显现的是“室厅”,只要个别数据显现的是“房间”“卫”,为了便利后期的运用,需求将“房间”替换成“室”,以确保数据的一致性。

  • pandas.replace()方法可以完结替换数据的操作
  • 运用for循环遍历,对每个值进行替换并追加到新的空数组
  • 将新的数组赋值给表格中的指定列,完结替换

获取数据集:

file_data = pd.read_csv("链家北京租房数据.csv")
file_data

原数据集大体内容展现如下:原数据集“户型那一列”表达方式不同意,需求进行替换。

【数据处理】北京市租房案例实战(3)

# 获取户型
house_data = file_data["户型"]
temp_list = [] #  创建空列表
for i in house_data:
    # print(i)
    new_info = i.replace("房间", "室") # 将房间替换成室
    temp_list.append(new_info)
temp_list

部分运转成果展现如下:

【数据处理】北京市租房案例实战(3)

替换原表格数据:

# 替换原表格
file_data.loc[:,"户型"] = temp_list
file_data

运转成果如下所示:可以看出,“户型”那一列已经被替换。

【数据处理】北京市租房案例实战(3)

2.2 房源数量&位置散布分析

如果希望计算各个区域的房源数量,以及查看这些房子的散布情况,则需求先获取各个区的房源,为了实现这个需求,可以将整个数据依照“区域”一列进行分组。

为了可以精确地看到各区域的房源数量,这儿只需求展现“区域”和是“数量”这两列的数据即可。因而,先创建一个空的DataFrame目标,然后再将各个区域计算的总数量作为该目标的数据进行展现。

  • 新建DataFrame
  • file_data[“区域”].unique():筛选出区域,相同的区域保留一个
  • DataFrame包含”区域和”数量”两列
new_df = pd.DataFrame({"区域": file_data["区域"].unique(), "数量":[0]*13})
new_df

运转成果:运转成果部分展现

【数据处理】北京市租房案例实战(3)

然后,咱们运用分组聚合计数的方法,来计算每个区域的房源数量

  • groupby(by=”区域”):以原表格中“区域”这一列进行分组
  • .count()将分组成果中的每组数据进行计数(每个类别有多少样本)
# 获取每个区域房源数量
# 分组聚合 计数聚合
area_count = file_data.groupby(by="区域").count()

接下来,为列赋值,将分组的成果赋值给刚才新建的DataFrame中的“数量”那一列

# 为列赋值
new_df["数量"] = area_count.values
new_df

运转成果如下图所示:可以看出已经分组好了并添加到DataFrame中了,但是还没有排序。

【数据处理】北京市租房案例实战(3)

对“数量”那一列进行排序:

  • 降序摆放:ascending=False
# 排序
# 降序摆放
new_df.sort_values(by="数量", ascending=False)

运转成果如下图所示:可以看出区域的房源量已经从大到小排序了。

【数据处理】北京市租房案例实战(3)