现在是时候对数据动一动手脚了
运行本篇文章代码时必须先运行加州房价篇 (一) : 了解数据中的所有代码
在正式处理数据之前,我们需要先把median_house_value(地区房屋均价)这一特征摘出来,这是我们的目标,无需处理
housing_target = housing["median_house_value"].copy()
housing = housing.drop("median_house_value", axis=1)
处理数据
还记得我们在加州房价篇 (一) : 了解数据中一开始就遇到的两个数据自身的问题吗
我们再看一下
housing.info()
输出:
4和9号特征,数据缺失和非数字数据
解决数据缺失
一般来说,我们有三种方法来处理这个问题
- 放弃这些有数据缺失的地区,207个
- 放弃这个特征(total_bedrooms)
- 用一些数字把缺失填补好(中位数,平均数,众数)
选择1:
housing.dropna(subset=["total_bedrooms"])
选择2:
housing.drop("total_bedrooms", axis=1)
选择3:
median = housing["total_bedrooms"].median() #中位数
housing["total_bedrooms"].fillna(median, inplace=True)
我们更倾向于做数据损失更少的处理,显然选择3