📅  最后修改于: 2023-12-03 15:04:21.619000             🧑  作者: Mango
在数据处理中,经常需要对缺失值进行处理。Pandas库中的DataFrame.fillna()方法能极大地简化缺失值处理的流程。本文将介绍DataFrame.fillna()的详细用法,并且提供相关的代码示例。
DataFrame.fillna()方法是用于在DataFrame中将缺失值用指定的数值(比如 0、mean、median等)替换。fillna()有以下参数:
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)
其中,最重要的参数是value,它可以是单个数值、字典、Series 或 DataFrame。
在下面的示例中,我们将演示如何使用DataFrame.fillna()方法替换DataFrame中的缺失值。
首先,我们创建一个包含一些缺失值的 DataFrame。下面的代码将创建一个包含两个列(A和B)的DataFrame,并将随机一半元素设置为缺失值:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.random((5, 2)), columns=['A', 'B'])
df.iloc[[1,3], [0]] = np.nan
print(df)
输出结果如下:
A B
0 0.215534 0.516173
1 NaN 0.050036
2 0.765104 0.244091
3 NaN 0.397815
4 0.446713 0.900882
我们可以使用指定的数值(如0)来替换 DataFrame 中的缺失值。下面的代码演示了如何使用 0 替换 DataFrame 中的缺失值:
df.fillna(0, inplace=True)
print(df)
输出结果如下:
A B
0 0.215534 0.516173
1 0.000000 0.050036
2 0.765104 0.244091
3 0.000000 0.397815
4 0.446713 0.900882
我们也可以使用均值(mean)来替换 DataFrame 中的缺失值。下面的代码演示了如何使用 DataFrame 中的列均值替换缺失值:
df.fillna(df.mean(), inplace=True)
print(df)
输出结果如下:
A B
0 0.215534 0.516173
1 0.475484 0.050036
2 0.765104 0.244091
3 0.475484 0.397815
4 0.446713 0.900882
如果您想使用中位数(median)替换 DataFrame 中的缺失值,则可以使用以下代码:
df.fillna(df.median(), inplace=True)
print(df)
输出结果如下:
A B
0 0.215534 0.516173
1 0.475484 0.050036
2 0.765104 0.244091
3 0.475484 0.397815
4 0.446713 0.900882
我们还可以使用前一个非缺失值来替换 DataFrame 中的缺失值。下面的代码演示了如何使用 ffill 方法:
df.fillna(method='ffill', inplace=True)
print(df)
输出结果如下:
A B
0 0.215534 0.516173
1 0.215534 0.050036
2 0.765104 0.244091
3 0.765104 0.397815
4 0.446713 0.900882
如果您想删除 DataFrame 中的缺失值,可以使用 dropna() 方法。
df.dropna(inplace=True)
print(df)
输出结果如下:
A B
0 0.215534 0.516173
2 0.765104 0.244091
4 0.446713 0.900882
Pandas DataFrame.fillna() 方法是处理缺失值的重要工具,能够简化数据清理的流程。在使用 DataFrame.fillna() 时,我们可以使用指定值、均值、中位数或前一个非缺失值来替换缺失值,以达到数据清理的目的。