一、什么是数据预处理
数据预处理(Data Preprocessing)是数据分析和机器学习中至关重要的步骤,旨在将原始数据转换为更高质量、更适合分析或建模的形式。由于真实世界的数据通常存在不完整、不一致、噪声或冗余等问题,预处理可以帮助提高数据的可用性和模型的性能。
数据预处理的主要步骤
-
数据清洗(Data Cleaning)
-
处理缺失值:填充(均值、中位数、众数等)、删除缺失样本或字段。
-
处理噪声数据:平滑或剔除异常值(如使用分箱、聚类或统计方法)。
-
纠正不一致数据:统一格式(如日期格式、单位)、修正逻辑错误。
-
-
数据集成(Data Integration)
-
合并多个数据源,解决冗余、冲突或重复问题(例如同名不同义的字段)。
-
-
数据变换(Data Transformation)
-
标准化(Standardization):将数据缩放到均值为0、标准差为1(如Z-score)。
-
归一化(Normalization):将数据缩放到固定范围(如[0,1])。
-
离散化(Discretization):将连续数值分段(如年龄分为“青年”“中年”“老年”)。
-
特征编码:将分类变量转换为数值(如独热编码、标签编码)。
-
-
数据归约(Data Reduction)
-
降低数据规模,同时保留关键信息,例如:
-
特征选择:筛选重要特征(如相关系数、随机森林重要性)。
-
降维:使用主成分分析(PCA)、t-SNE等方法压缩维度。
-
-
-
数据分箱(Binning)
-
将连续值划分为区间,减少噪声影响(如将收入分为“低、中、高”)。
-
数据预处理的目的
-
提高数据质量:消除噪声、错误和不一致性。
-
提升模型性能:通过标准化、归一化等手段优化数据分布。
-
减少计算成本:降维和归约可加速模型训练。
-
适配算法需求:许多算法对输入数据的格式和范围敏感(如神经网络需要归一化)。
举例说明
-
原始数据问题:某用户年龄字段包含“-1”(异常值),收入字段有缺失。
-
预处理后:删除“-1”,用中位数填充缺失值,并对收入进行归一化处理。
数据预处理是数据科学流程中不可或缺的环节,直接影响最终结果的可靠性和模型效果。
二、数据检测
1.准备数据
2.查看NaN值
方法一:
isnull():是查看数据是否存在NaN值,如果有则返回True
方法二:
notnull():是查数据是否不存在NaN值,如果不存在则返回True
三、缺失值处理
1.查看缺失值的占比
2.提取出完整的数据
这里使用另外一组数据
3.清除全空值
dropna
是 Pandas 中 DataFrame 的一个方法,用于删除包含缺失值(NaN
)的行或列,目的是清理数据中的无效缺失信息。how
是dropna
方法的一个参数,用于指定删除行或列的条件:- 当
how='any'
时,只要行或列中 存在任意一个NaN
,就删除该行或列。 - 当
how='all'
时,仅当行或列中 所有值都为NaN
时,才删除该行或列。
- 当
4.筛选非空值数
5.某一列 = NaN,删除整行数据
6.缺失值的替换处理
7.缺失值的填充处理
fillna
是 Pandas 中 DataFrame 的一个方法,用于填充数据中的缺失值(NaN
),其常见属性(参数)包括value
(填充的具体值)、method
(填充方法)、axis
(指定轴,0<