【进阶篇】使用Pandas的数据清洗函数进行缺失值处理和异常值检测
发布时间: 2024-06-24 16:39:47 阅读量: 96 订阅数: 128
![【进阶篇】使用Pandas的数据清洗函数进行缺失值处理和异常值检测](https://img-blog.csdnimg.cn/20210527150852471.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E4Njg5NzU2,size_16,color_FFFFFF,t_70)
# 2.1 Pandas中缺失值处理函数
### 2.1.1 isnull() 和 notnull() 函数
`isnull()` 和 `notnull()` 函数用于检测数据框中的缺失值。`isnull()` 返回一个布尔型数据框,其中 `True` 表示缺失值,而 `False` 表示非缺失值。`notnull()` 函数返回一个布尔型数据框,其中 `True` 表示非缺失值,而 `False` 表示缺失值。
```python
import pandas as pd
df = pd.DataFrame({'name': ['John', 'Mary', np.nan], 'age': [25, 30, np.nan]})
print(df.isnull())
print(df.notnull())
```
输出:
```
name age
0 False False
1 False False
2 True True
name age
0 True True
1 True True
2 False False
```
# 2. 缺失值处理
### 2.1 Pandas中缺失值处理函数
#### 2.1.1 isnull() 和 notnull() 函数
isnull() 和 notnull() 函数用于检测数据框中是否存在缺失值。
**isnull() 函数**
* 语法:`isnull(df)`
* 参数:
* df:要检测缺失值的数据框
* 返回值:一个布尔型数据框,其中 True 表示缺失值,False 表示非缺失值
**notnull() 函数**
* 语法:`notnull(df)`
* 参数:
* df:要检测缺失值的数据框
* 返回值:一个布尔型数据框,其中 True 表示非缺失值,False 表示缺失值
#### 2.1.2 dropna() 和 fillna() 函数
dropna() 和 fillna() 函数用于处理缺失值。
**dropna() 函数**
* 语法:`dropna(df)`
* 参数:
* df:要处理缺失值的数据框
* how:指定如何处理缺失值,可以是 'any'(删除任何包含缺失值的行)或 'all'(仅删除所有列都包含缺失值的行)
* 返回值:一个新的数据框,其中已删除包含缺失值的行
**fillna() 函数**
* 语法:`fillna(df, value)`
* 参数:
* df:要处理缺失值的数据框
* value:要填充缺失值的值
* 返回值:一个新的数据框,其中缺失值已用指定的值填充
### 2.2 缺失值处理策略
#### 2.2.1 删除缺失值
删除缺失值是一种处理缺失值的方法,它可以防止缺失值影响数据分析和建模。
**优点:**
* 保证数据的完整性
* 避免因缺失值而引入偏差
**缺点:**
* 可能导致数据丢失
* 可能影响数据分布
#### 2.2.2 填充缺失值
填充缺失值是一种处理缺失值的方法,它可以保留所有数据并避免因缺失值而引入偏差。
**优点:**
* 保留所有数据
* 避免因缺失值而引入偏差
**缺点:**
* 填充值可能不准确
* 可能影响数据分布
**填充缺失值的方法:**
* **均值或中位数填充:**使用列的均值或中位数填充缺失值
* **众数填充:**使用列中出现次数最多的值填充缺失值
* **插值:**使用相邻值的线性或非线性插值填充缺失值
* **预测模型:**使用机器学习模型预测缺失值
# 3. 异常值检测
### 3.1 Pandas中异
0
0