数据缺失、混乱、重复怎么办?最全数据清洗指南让你所向披靡(5)
2023-05-21 来源:飞速影视
解决方案 1:丢弃观察值
在统计学中,该方法叫做成列删除(listwise deletion),需要丢弃包含缺失值的整列观察值。
只有在我们确定缺失数据无法提供信息时,才可以执行该操作。否则,我们应当考虑其他解决方案。
此外,还存在其他标准。
例如,从缺失数据直方图中,我们可以看到只有少量观察值的缺失值数量超过 35。因此,我们可以创建一个新的数据集 df_less_missing_rows,该数据集删除了缺失值数量超过 35 的观察值。
# drop rows with a lot of missing values.ind_missing = df[df["num_missing"] > 35].indexdf_less_missing_rows = df.drop(ind_missing, axis=0)
解决方案 2:丢弃特征
与解决方案 1 类似,我们只在确定某个特征无法提供有用信息时才丢弃它。
例如,从缺失数据百分比列表中,我们可以看到 hospital_beds_raion 具备较高的缺失值百分比——47%,因此我们丢弃这一整个特征。
# hospital_beds_raion has a lot of missing.# If we want to drop.cols_to_drop = ["hospital_beds_raion"]df_less_hos_beds_raion = df.drop(cols_to_drop, axis=1)
解决方案 3:填充缺失数据
当特征是数值变量时,执行缺失数据填充。对同一特征的其他非缺失数据取平均值或中位数,用这个值来替换缺失值。
当特征是分类变量时,用众数(最频值)来填充缺失值。
以特征 life_sq 为例,我们可以用特征中位数来替换缺失值。
# replace missing values with the median.med = df["life_sq"].median()print(med)df["life_sq"] = df["life_sq"].fillna(med)
此外,我们还可以对所有数值特征一次性应用同样的填充策略。
# impute the missing values and create the missing value indicator variables for each numeric column.df_numeric = df.select_dtypes(include=[np.number])numeric_cols = df_numeric.columns.values
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)
www.fs94.org-飞速影视 粤ICP备74369512号