python pandas框架df.fillna方法参数使用详解
Pandas的fillna()
方法用于填充数据帧中的缺失值。它可以在DataFrame对象上调用,并使用不同的参数来指定填充缺失值的策略。下面是使用fillna()
方法的详细步骤和说明:
步骤1:导入必要的库和创建DataFrame
首先,导入pandas
库并创建一个示例DataFrame,以便演示fillna()
方法的用法。以下是创建DataFrame的示例代码:
import pandas as pd
# 创建示例DataFrame
data = {'A': [1, 2, None, 4, 5],
'B': [None, 6, 7, None, 9],
'C': [10, 11, 12, 13, None]}
df = pd.DataFrame(data)
在上面的代码中,我们创建了一个包含一些缺失值的示例DataFrame,其中列’A’、’B’和’C’分别包含了一些缺失值。
步骤2:使用fillna()方法填充缺失值
使用fillna()
方法可以填充缺失值。下面是填充缺失值的几种常见方法:
2.1. 使用常量填充缺失值
最简单的方法是使用一个常量值来填充缺失值。可以通过将常量值作为fillna()
方法的参数来实现。以下是示例代码:
# 使用常量值0填充缺失值
df_filled = df.fillna(0)
print(df_filled)
上述代码将所有缺失值替换为0,并将填充后的DataFrame存储在df_filled
变量中。
2.2. 使用前一个非缺失值填充缺失值
有时候希望使用前一个非缺失值来填充缺失值。这可以通过使用fillna()
方法的method
参数为ffill
来实现。以下是示例代码:
# 使用前一个非缺失值填充缺失值
df_filled = df.fillna(method='ffill')
print(df_filled)
上述代码将每个缺失值替换为其前一个非缺失值,并将填充后的DataFrame存储在df_filled
变量中。
2.3. 使用后一个非缺失值填充缺失值
类似地,可以使用后一个非缺失值来填充缺失值。可以使用fillna()
方法的method
参数为bfill
来实现。以下是示例代码:
# 使用后一个非缺失值填充缺失值
df_filled = df.fillna(method='bfill')
print(df_filled)
上述代码将每个缺失值替换为其后一个非缺失值,并将填充后的DataFrame存储在df_filled
变量中。
2.4. 沿着轴向填充缺失值
除了使用常量值或相邻的非缺失值填充缺失值之外,还可以通过指定axis
参数来沿着特定的轴向填充缺失值。以下是示例代码:
# 沿着列轴向使用前一个非缺失值填充缺失值
df_filled = df.fillna(method='ffill', axis=0)
print(df_filled)
# 沿着行轴向使用前一个非缺失值填充缺失值
df_filled = df.fillna(method='ffill', axis=1)
print(df_filled)
在上述代码中,我们分别沿着列和行的轴向使用前一个非缺失值来填充缺失值。
2.5. 使用插值方法填充缺失值
除了前一个或后一个非缺失值之外,还可以使用插值方法来填充缺失值。可以使用fillna()
方法的method
参数并指定插值方法来实现。以下是示例代码:
# 使用线性插值填充缺失值
df_filled = df.interpolate()
print(df_filled)
上述代码使用线性插值方法来填充缺失值,并将填充后的DataFrame存储在df_filled
变量中。
2.6. 使用平均值、中位数或众数填充缺失值
另一种常见的方法是使用列的平均值、中位数或众数来填充缺失值。可以使用fillna()
方法的value
参数,并将平均值、中位数或众数作为该参数的值来实现。以下是示例代码:
# 使用列的平均值填充缺失值
mean_value = df.mean()
df_filled = df.fillna(value=mean_value)
print(df_filled)
# 使用列的中位数填充缺失值
median_value = df.median()
df_filled = df.fillna(value=median_value)
print(df_filled)
# 使用列的众数填充缺失值
mode_value = df.mode().iloc[0]
df_filled = df.fillna(value=mode_value)
print(df_filled)
上述代码分别使用列的平均值、中位数和众数来填充缺失值,并将填充后的DataFrame存储在df_filled
变量中。
步骤3:处理原地填充和返回新的DataFrame
默认情况下,fillna()
方法返回填充后的DataFrame副本,而不修改原始DataFrame。如果希望在原地修改DataFrame,可以将inplace
参数设置为True
。以下是示例代码:
# 在原地填充缺失值
df.fillna(0, inplace=True)
print(df)
上述代码将原始DataFrame中的缺失值替换为0,并在原地进行修改。
通过上述步骤和说明,你现在应该对如何使用Pandas的fillna()
方法以及其各种参数有了更好的理解。根据你的需求,选择适当的填充策略,可以将缺失值替换为常量、相邻的非缺失值、插值结果,或者使用列的统计量进行填充。