【基础】Pandas数据清洗与处理(缺失值处理、数据筛选等)
发布时间: 2024-06-27 20:21:37 阅读量: 64 订阅数: 113
数据清洗之 缺失值处理
![【基础】Pandas数据清洗与处理(缺失值处理、数据筛选等)](https://img-blog.csdnimg.cn/img_convert/a12c695f8b68033fc45008ede036b653.png)
# 2.1 缺失值检测
缺失值检测是数据清洗过程中至关重要的一步,它可以帮助我们识别和处理缺失的数据。Pandas提供了多种方法来检测缺失值:
### 2.1.1 isnull()和notnull()函数
`isnull()`和`notnull()`函数可以分别检测和返回一个布尔值掩码,指示数据框中的元素是否为缺失值。例如:
```python
import pandas as pd
df = pd.DataFrame({'name': ['Alice', 'Bob', np.nan], 'age': [20, 25, np.nan]})
df.isnull()
```
输出:
```
name age
0 False False
1 False False
2 True True
```
### 2.1.2 统计缺失值数量
为了统计数据框中缺失值的总数,我们可以使用`isnull().sum()`或`notnull().sum()`函数。例如:
```python
df.isnull().sum()
```
输出:
```
name 1
age 1
dtype: int64
```
# 2. 缺失值处理
缺失值是数据集中常见的现象,它们会对数据分析和建模产生负面影响。Pandas提供了多种方法来处理缺失值,包括检测、填充和删除。
### 2.1 缺失值检测
#### 2.1.1 isnull()和notnull()函数
`isnull()`和`notnull()`函数用于检测缺失值。`isnull()`返回一个布尔型掩码,其中`True`表示缺失值,`False`表示非缺失值。`notnull()`返回`isnull()`的相反值。
```python
import pandas as pd
df = pd.DataFrame({'name': ['Alice', 'Bob', np.nan, 'Dave'],
'age': [20, 25, np.nan, 30]})
print(df.isnull())
print(df.notnull())
```
输出:
```
name age
0 False False
1 False False
2 True True
3 False False
```
#### 2.1.2 统计缺失值数量
`isnull().sum()`和`notnull().sum()`函数可用于统计缺失值和非缺失值的数量。
```python
print(df.isnull().sum())
print(df.notnull().sum())
```
输出:
```
name 1
age 1
dtype: int64
name age
0 4 4
```
### 2.2 缺失值填充
#### 2.2.1 fillna()函数
`fillna()`函数用于填充缺失值。它接受一个值或一个函数作为参数。如果提供一个值,则用该值填充所有缺失值。如果提供一个函数,则使用该函数计算每个缺失值的填充值。
```python
# 用一个值填充缺失值
df.fillna(0)
# 使用函数计算填充值
df.fillna(lambda x: x.mean())
```
#### 2.2.2 插值填充
插值填充使用缺失值周围的非缺失值来估计缺失值。Pandas提供了`interpolate()`函数进行插值填充。
```python
df.interpolate(method='linear')
```
#### 2.2.
0
0