如何使用 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 值保持不变。
广告