如何使用 Pandas series.fillna() 替换缺失值?


pandas series.fillna() 方法用于用指定值替换缺失值。此方法替换整个序列对象中的 Nan 或 NA 值。

pandas fillna 的参数如下所示:

  • Value - 它允许我们指定一个特定的值来替换 Nan,默认情况下它取 None。

  • Method - 用于填充重新索引的 Series 中的缺失值。它采用以下任何值,如 'backfill'、'bfill'、'pad'、'ffill' 和 None(默认值)。

  • Inplace - 此参数采用布尔值。如果它取 True,则修改将应用于原始序列对象本身,否则,它将创建一个新的序列,并将更新的缺失值作为结果。默认值为 False。

  • Limit - 此参数采用整数值,用于指定希望向前/向后填充多少个 NA 值。此参数的默认值为 None。

  • Axis - 它采用 0 或索引标签。

  • Downcast - 它采用一个字典,指定数据类型的降级。

在这里,我们将了解 series.fillna() 方法如何替换缺失值。

示例 1

在下面的示例中,我们将用整数 10 替换缺失值。

# importing pandas package
import pandas as pd
import numpy as np

# create a series
s = pd.Series([np.nan, np.nan, 89, 64, np.nan], index=["a", "b", "c", "d", "e"])
print(s)

# replace Missing values with 10
result = s.fillna(10)
print('Result:')
print(result)

说明

最初,我们创建了包含一些缺失值的 pandas 系列对象。然后用值 10 应用 fillna() 方法。这里,默认参数没有改变。

输出

输出如下:

a     NaN
b     NaN
c    89.0
d    64.0
e     NaN
dtype: float64

Result:
a    10.0
b    10.0
c    89.0
d    64.0
e    10.0
dtype: float64

在上面的输出块中,我们可以看到整个序列对象中的所有 Nan 值都被很好地替换为值 10。

示例 2

这次,我们将通过将 bfill 值指定给方法参数来替换缺失值。这样,我们就不需要指定任何特定值来填充缺失值,它将取 Nan 之后的作为替换值。

# importing pandas package
import pandas as pd
import numpy as np

# create a series
s = pd.Series([np.nan, np.nan, 89, 64, np.nan], index=["a", "b", "c", "d", "e"])
print(s)

# replace Missing values with bfill
result = s.fillna(method='bfill')
print('Result:')
print(result)

输出

输出如下所示:

a     NaN
b     NaN
c    89.0
d    64.0
e     NaN
dtype: float64

Result:
a    89.0
b    89.0
c    89.0
d    64.0
e     NaN
dtype: float64

在上面的输出块中,我们可以看到索引位置 a、b 处的 Nan 值被替换为值 89,这是因为我们将 bfill 值指定给了方法参数。索引位置 e 处的 Nan 值保持不变。

更新于:2022年3月7日

2K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告