Python填充缺失值的核心方法包括均值填充、中位数填充、众数填充、插值法和机器学习预测填充,适用于不同数据场景。均值填充适合正态分布数据,中位数填充对异常值稳健,众数填充专为分类变量设计,插值法适用于时间序列,机器学习模型则能处理复杂关系。
-
均值填充:用列的平均值替换缺失值,保持数据整体趋势。示例:
python复制
df['列名'].fillna(df['列名'].mean(), inplace=True)
-
中位数填充:通过中位数减少异常值干扰。示例:
python复制
df['列名'].fillna(df['列名'].median(), inplace=True)
-
众数填充:针对分类数据,使用最高频值填充。示例:
python复制
df['列名'].fillna(df['列名'].mode()[0], inplace=True)
-
插值法:基于相邻数据推算缺失值,适合有序数据。示例:
python复制
df['列名'].interpolate(method='linear', inplace=True)
-
机器学习预测填充:利用其他特征训练模型预测缺失值。示例(KNN):
python复制
from sklearn.impute import KNNImputer imputer = KNNImputer(n_neighbors=2) df_filled = pd.DataFrame(imputer.fit_transform(df), columns=df.columns)
根据数据分布、类型和分析目标选择合适方法,确保数据质量与后续分析可靠性。