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

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

pandas fillna 的参数如下:

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

  • 方法 -它用于填充重新索引系列中的缺失值。它采用这些值中的任何一个,例如 'backfill'、'bfill'、'pad'、'ffill' 和None(default).

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

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

  • 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 系列对象。然后应用fillna()值为 10 的方法。这里,默认参数没有更改。

输出结果

输出如下 -

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 值保持不变。