【基础】Python数据清洗与缺失值处理
发布时间: 2024-06-24 18:07:09 阅读量: 69 订阅数: 117
![【基础】Python数据清洗与缺失值处理](https://img-blog.csdnimg.cn/f1794fa6b3a645b3bfda256d58bdf090.png)
# 1. Python数据清洗基础
数据清洗是数据分析和机器学习等领域的关键步骤,它可以帮助我们从原始数据中提取有价值的信息。Python作为一种强大的编程语言,提供了丰富的库和工具,可以高效地进行数据清洗任务。本章将介绍Python数据清洗的基础知识,包括数据类型转换、格式化、标准化、归一化、去重、合并、验证和异常处理等基本操作。
# 2. Python缺失值处理技术
### 2.1 缺失值检测和类型识别
#### 2.1.1 缺失值检测方法
缺失值检测是缺失值处理的第一步,其目的是识别数据集中存在缺失值的位置。常用的缺失值检测方法包括:
- **isnull()函数:**该函数返回一个布尔型数组,其中True表示该位置存在缺失值,False表示该位置不包含缺失值。
```python
import numpy as np
import pandas as pd
data = pd.DataFrame({
'Age': [20, 25, np.nan, 30, np.nan],
'Gender': ['M', 'F', 'M', 'F', 'M']
})
print(data.isnull())
```
输出:
```
Age Gender
0 False False
1 False False
2 True False
3 False False
4 True False
```
- **notnull()函数:**该函数返回一个布尔型数组,其中True表示该位置不包含缺失值,False表示该位置存在缺失值。
```python
print(data.notnull())
```
输出:
```
Age Gender
0 True True
1 True True
2 False True
3 True True
4 False True
```
#### 2.1.2 缺失值类型识别
识别缺失值类型有助于选择适当的处理方法。常见的缺失值类型包括:
- **随机缺失(Missing at Random,MAR):**缺失值出现的概率与其他变量无关。
- **非随机缺失(Missing Not at Random,MNAR):**缺失值出现的概率与其他变量相关。
- **完全缺失(Missing Completely at Random,MCAR):**缺失值出现的概率与所有其他变量无关。
识别缺失值类型可以使用以下方法:
- **Little's MCAR检验:**该检验假设缺失值是MCAR,并通过比较缺失值和非缺失值样本的协方差矩阵来检验该假设。
- **Missing Indicator Method:**该方法将缺失值视为一个单独的类别,并使用分类模型来预测缺失值出现的概率。
### 2.2 缺失值处理方法
#### 2.2.1 删除缺失值
删除缺失值是最简单直接的处理方法,适用于缺失值数量较少且不影响数据分析结果的情况。
```python
# 删除包含缺失值的样本
data.dropna()
# 删除包含指定列缺失值的样本
data.dropna(subset=['Age'])
```
#### 2.2.2 填充缺失值
填充缺失值适用于缺失值数量较多且影响数据分析结果的情况。常用的填充方法包括:
##### 2.2.2.1 均值填充
均值填充使用该列的均值来填充缺失值。
```python
# 使用均值填充缺失值
data['Age'].fillna(data['Age'].mean())
```
##### 2.2.2.2 中位数填充
中位数填充使用该列的中位数来填充缺失值。
```python
# 使用中位数填充缺失值
data['Age'].fillna(data['Age'].median())
```
##### 2.2.2.3 众数填充
众数填充使用该列中出现频率最高的非缺失值来填充缺失值。
```python
# 使用众数填充缺失值
data['Gender'].fillna(data['Gender'].mode()[0])
```
##### 2.2.2.4 插值填充
插值填充使用该列中相邻非缺失值的线性插值或多项式插值来填充缺失值。
```python
# 使用线性插值填充缺失值
data['Age'].interpolate(method='linear')
# 使用多项式插值填充缺失值
data['Age'].interpolate(method='polynomial', order=2)
```
### 2.3 缺失值处理的评估和选择
选择合适的缺失值处理方法需要考虑以下因素:
- 缺失值的数量和类型
- 缺失值对数据分析结果的影响
- 填充方法的鲁棒性和准确性
常用的评估方法包括:
- **均方根误差(RMSE):**衡量填充值与真实值之间的差异。
- **平均绝对误差(MAE):**衡量填充值与真实值之间的绝对差
0
0