房地产自动定价(二)
数据预处理
昨天,我确实爬到了我所需要的数据集,但是为了让后期的机器学习算法运行地更为顺利,我觉得非常有必要做一期数据预处理。在进行数据预处理之前,我想先给大家看一下我的数据库结构。


虽说只是草草一撇,但是我们可以发现其中有很多数据格式都不够统一,其中甚至有些显示的是暂无数据。
不妨来一列列地统一化吧~ヽ( ̄▽ ̄)ノ
house_title
这列很明显的我们可以看到后面的 “**平米” 的数据和之后的house_area产生了数据重复,我们需要做的是将 “**平米” 数据给剔除。
因为涉及到字符串切片,我们的流程就只好放在python中了(而非MySQL)。
def house_title_format(self):
cousor_r = self.db.cursor()
cousor_w = self.db.cursor()
sqlR = "SELECT house_id, house_title FROM house_info;"
sqlW = "UPDATE house_info SET house_title = %s, rooms_type = %s WHERE house_id = %s;"
cousor_r.execute(sqlR)
result_set = cousor_r.fetchall()
for row in result_set:
house_id = row[0]
house_title = row[1]
title = house_title.split(" ")[0]
rooms = house_title.split(" ")[1]
cousor_w.execute(sqlW, (title, rooms, str(house_id)))
self.db.commit()

事实上我好像忘了测试就跑原数据集了。还好苍天有眼,没毁了数据。既然想起来了,赶紧先备个份嘻嘻。
house towards
好了我回来了,刚刚真是惊心动魄,这下我存好数据库了,实在不行就删库重来呗!

house floor先不处理,那个太难了。先把house towards这列处理下。
对house towards这列做了去重查询之后,发现它们的数据格式大同小异,都是 " 南 北 东 " 类似如此的格式(即方向+空格+方向+…)除此之外还有一些"暂无数据"的小可爱。那其实就很简单啦。
在经过了一番操作之后,我成功地按照{‘南’: 0, ‘北’: 1, ‘东’: 2, ‘西’: 3, ‘西南’: 4, ‘东南’: 5, ‘东北’: 6, ‘西北’: 7}的方式把数据转化成功了。
下一个是谁,我来看看(o゚▽゚)o
house_type
因为乍一看其实house_type和house_towards的处理差不多,好啦,那就先处理它。

成功了,我按照这个表格进行了转码,这下就都处理完啦。

那么数据预处理就结束了,接下来,为了让数据更加充足,我想做一下每个地点的经纬度的抓取~希望能成功啊!
git仓库链接:https://github.com/AIINIRII/HousingEvaluation/