p ython缺失值填补
时间: 2023-07-11 22:50:55 浏览: 103
python实现数据预处理之填充缺失值的示例
5星 · 资源好评率100%
在 Python 中,我们可以使用 Pandas 库来处理数据中的缺失值。Pandas 提供了几种方法来处理缺失值:
1. 删除缺失值:使用 dropna() 函数可以删除包含缺失值的行或列。
2. 填充缺失值:使用 fillna() 函数可以填充缺失值。有几种填充缺失值的方法,如使用平均值、中位数或众数进行填充,或者使用前一个或后一个非缺失值进行填充。
3. 插值:使用 interpolate() 函数可以插值填充缺失值,可以选择使用线性插值或多项式插值。
举个例子,假设有一组数据包含缺失值:
```
import pandas as pd
import numpy as np
data = pd.DataFrame({'A': [1, 2, np.nan, 4], 'B': [5, np.nan, 7, 8]})
print(data)
```
输出:
```
A B
0 1.0 5.0
1 2.0 NaN
2 NaN 7.0
3 4.0 8.0
```
我们可以使用 dropna() 函数删除包含缺失值的行或列:
```
# 删除包含缺失值的行
data.dropna(axis=0, inplace=True)
print(data)
# 删除包含缺失值的列
data.dropna(axis=1, inplace=True)
print(data)
```
输出:
```
A B
0 1.0 5.0
3 4.0 8.0
A
0 1.0
1 2.0
2 NaN
3 4.0
```
我们还可以使用 fillna() 函数填充缺失值:
```
# 使用平均值填充缺失值
data.fillna(data.mean(), inplace=True)
print(data)
# 使用前一个非缺失值填充缺失值
data.fillna(method='ffill', inplace=True)
print(data)
```
输出:
```
A B
0 1.0 5.0
1 2.0 6.5
2 2.333333 7.0
3 4.0 8.0
A B
0 1.0 5.0
1 2.0 5.0
2 2.0 7.0
3 4.0 8.0
```
最后,我们可以使用 interpolate() 函数插值填充缺失值:
```
# 使用线性插值填充缺失值
data.interpolate(method='linear', inplace=True)
print(data)
# 使用多项式插值填充缺失值
data.interpolate(method='polynomial', order=2, inplace=True)
print(data)
```
输出:
```
A B
0 1.0 5.0
1 2.0 6.0
2 3.0 7.0
3 4.0 8.0
A B
0 1.000000 5.00
1 2.000000 6.00
2 2.666667 7.00
3 4.000000 8.00
```
阅读全文