📜  Python| Pandas DataFrame.fillna() 替换数据框中的 Null 值(1)

📅  最后修改于: 2023-12-03 15:04:21.619000             🧑  作者: Mango

Python | Pandas DataFrame.fillna() 替换数据框中的 Null 值

在数据处理中,经常需要对缺失值进行处理。Pandas库中的DataFrame.fillna()方法能极大地简化缺失值处理的流程。本文将介绍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

首先,我们创建一个包含一些缺失值的 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() 时,我们可以使用指定值、均值、中位数或前一个非缺失值来替换缺失值,以达到数据清理的目的。