在数据处理中,空值(NaN)是一个常见的情况,可以采用不同的填充方法来处理它。以下是常见的空值填充方法:
1. 填充常数值
使用一个固定的值填充空值,如 0、空字符串、特定数字等。
df['列名'].fillna(0, inplace=True) # 填充 0
df['列名'].fillna('', inplace=True) # 填充空字符串
df['列名'].fillna(100, inplace=True) # 填充 100
2. 使用前一个或后一个有效值填充(前向填充和后向填充)
前向填充:用前一个有效值填充空值。后向填充:用后一个有效值填充空值。
df['列名'].fillna(method='ffill', inplace=True) # 前向填充
df['列名'].fillna(method='bfill', inplace=True) # 后向填充
3. 使用列的均值、中位数或众数填充
常用方法是根据数值列的统计特性(如均值、中位数、众数)来填充空值。
# 使用均值填充
df['列名'].fillna(df['列名'].mean(), inplace=True)
# 使用中位数填充
df['列名'].fillna(df['列名'].median(), inplace=True)
# 使用众数填充
df['列名'].fillna(df['列名'].mode()[0], inplace=True)
4. 插值法
插值方法根据已有的数据点推算出空值的合适填充值,常用于连续数据的填充。
df['列名'].interpolate(method='linear', inplace=True) # 线性插值
df['列名'].interpolate(method='polynomial', order=2, inplace=True) # 多项式插值
5. 使用分类变量的众数填充
对于分类变量,可以用该列的众数填充空值。
df['列名'].fillna(df['列名'].mode()[0], inplace=True)