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 series对象。然后使用value 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值仍然保持不变。